From: Toine Siebelink Date: Mon, 18 Sep 2023 14:54:22 +0000 (+0000) Subject: Merge "Migrate CPS to Spring-boot 3.0" X-Git-Tag: 3.3.7~4 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=a01f8861a84931f4bdf2d69fa05a793afabc22e0;hp=-c;p=cps.git Merge "Migrate CPS to Spring-boot 3.0" --- a01f8861a84931f4bdf2d69fa05a793afabc22e0 diff --combined cps-application/src/main/resources/application.yml index 58748271c,f65655487..016356801 --- a/cps-application/src/main/resources/application.yml +++ b/cps-application/src/main/resources/application.yml @@@ -140,10 -140,10 +140,10 @@@ springdoc - name: cps-ncmp-inventory url: /api-docs/cps-ncmp/openapi-inventory.yaml + permit-uri: /manage/**,/swagger-ui.html,/swagger-ui/**,/swagger-resources/**,/api-docs/** security: # comma-separated uri patterns which do not require authorization - permit-uri: /manage/**,/swagger-ui.html,/swagger-ui/**,/swagger-resources/**,/api-docs/** auth: username: ${CPS_USERNAME} password: ${CPS_PASSWORD} @@@ -191,8 -191,6 +191,8 @@@ ncmp dmi-response-timeout-ms: 30000 model-loader: retry-time-ms: 1000 + trust-level: + dmi-availability-watchdog-ms: 30000 modules-sync-watchdog: async-executor: diff --combined cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java index 7066f8016,a09834081..6a8310c20 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java @@@ -21,13 -21,10 +21,13 @@@ package org.onap.cps.ncmp.api.impl.client; +import com.fasterxml.jackson.databind.JsonNode; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.onap.cps.ncmp.api.impl.config.NcmpConfiguration.DmiProperties; import org.onap.cps.ncmp.api.impl.exception.HttpClientRequestException; import org.onap.cps.ncmp.api.impl.operations.OperationType; +import org.onap.cps.ncmp.api.impl.trustlevel.dmiavailability.DmiPluginStatus; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@@ -38,7 -35,6 +38,7 @@@ import org.springframework.web.client.R @Component @AllArgsConstructor +@Slf4j public class DmiRestClient { private RestTemplate restTemplate; @@@ -60,32 -56,10 +60,32 @@@ } catch (final HttpStatusCodeException httpStatusCodeException) { final String exceptionMessage = "Unable to " + operationType.toString() + " resource data."; throw new HttpClientRequestException(exceptionMessage, httpStatusCodeException.getResponseBodyAsString(), - httpStatusCodeException.getRawStatusCode()); + httpStatusCodeException.getStatusCode().value()); } } + /** + * Sends GET operation to DMI plugin's health check URL. + * + * @param dmiPluginBaseUrl the base URL of the dmi-plugin + * @return DmiPluginStatus as UP or DOWN + */ + public DmiPluginStatus getDmiPluginStatus(final String dmiPluginBaseUrl) { + try { + final HttpEntity httpHeaders = new HttpEntity<>(configureHttpHeaders(new HttpHeaders())); + final JsonNode dmiPluginHealthStatus = restTemplate.getForObject(dmiPluginBaseUrl + "/manage/health", + JsonNode.class, httpHeaders); + if (dmiPluginHealthStatus != null) { + if (dmiPluginHealthStatus.get("status").asText().equals("UP")) { + return DmiPluginStatus.UP; + } + } + } catch (final Exception exception) { + log.warn("Could not send request for health check since {}", exception.getMessage()); + } + return DmiPluginStatus.DOWN; + } + private HttpHeaders configureHttpHeaders(final HttpHeaders httpHeaders) { if (dmiProperties.isDmiBasicAuthEnabled()) { httpHeaders.setBasicAuth(dmiProperties.getAuthUsername(), dmiProperties.getAuthPassword());