/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019,2021 Nordix Foundation.
* Modifications Copyright (C) 2020 AT&T Intellectual Property.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang3.tuple.Pair;
+import org.onap.policy.common.endpoints.http.client.HttpClientConfigException;
/**
* Class to provide REST end point for PAP component to fetch all policy components, including PAP,
*/
public class PolicyComponentsHealthCheckControllerV1 extends PapRestControllerV1 {
+ private PolicyComponentsHealthCheckProvider provider;
+
+ /**
+ * Constructs the object.
+ *
+ * @throws HttpClientConfigException if creating http client failed
+ */
+ public PolicyComponentsHealthCheckControllerV1() throws HttpClientConfigException {
+ provider = new PolicyComponentsHealthCheckProvider();
+ }
+
/**
* Returns health status of all Policy components, including PAP, API, Distribution, and PDPs.
- * Note: a new provider {@link PolicyComponentsHealthCheckProvider} must be created for each
- * request.
*
* @param requestId request ID used in ONAP logging
* @return a response
response = String.class),
@ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
response = UUID.class)},
- extensions = {@Extension(name = EXTENSION_NAME,
- properties = {@ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)})})
- @ApiResponses(value = {@ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)})
+ extensions = {
+ @Extension(name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ })
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
+ @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ })
// @formatter:on
public Response policyComponentsHealthCheck(
@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) final UUID requestId) {
final Pair<Status, Map<String, Object>> pair =
- new PolicyComponentsHealthCheckProvider().fetchPolicyComponentsHealthStatus();
+ provider.fetchPolicyComponentsHealthStatus();
return addLoggingHeaders(addVersionControlHeaders(Response.status(pair.getLeft())), requestId)
.entity(pair.getRight()).build();
}