Merge "Migrate CPS to Spring-boot 3.0"
authorToine Siebelink <toine.siebelink@est.tech>
Mon, 18 Sep 2023 14:54:22 +0000 (14:54 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 18 Sep 2023 14:54:22 +0000 (14:54 +0000)
1  2 
cps-application/src/main/resources/application.yml
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/client/DmiRestClient.java

@@@ -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:
  
  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;
          } 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<Object> 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());