Search in sources :

Example 1 with Distribution

use of org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution in project so by onap.

the class ActivateVnfStatusOperationalEnvironment method execute.

/**
 * The Point-Of-Entry from APIH with activate status from SDC
 *
 * @param requestId - String
 * @param request - CloudOrchestrationRequest - object
 * @return void - nothing
 */
public void execute(String requestId, CloudOrchestrationRequest request) throws ApiException {
    try {
        String operationalEnvironmentId = "";
        String sdcDistributionId = request.getDistributionId();
        Distribution sdcStatus = request.getDistribution();
        // Distribution, Query for operationalEnvironmentId, serviceModelVersionId, origRequestId
        this.queryDistributionDbResponse = client.getDistributionStatusById(sdcDistributionId);
        operationalEnvironmentId = this.queryDistributionDbResponse.getOperationalEnvId();
        this.origRequestId = this.queryDistributionDbResponse.getRequestId();
        // ServiceModel, Query for recoveryAction, retryCountString
        this.queryServiceModelResponse = client.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId(operationalEnvironmentId, queryDistributionDbResponse.getServiceModelVersionId(), this.origRequestId);
        processActivateSDCStatus(sdcDistributionId, sdcStatus, this.queryDistributionDbResponse, this.queryServiceModelResponse);
        // After EVERY status processed, need to query the status of all service modelId
        // to determine the OVERALL status if "COMPLETE" or "FAILURE":
        checkOrUpdateOverallStatus(operationalEnvironmentId, this.origRequestId);
        // Update AAI to ACTIVE if Overall success
        if (isOverallSuccess) {
            String vnfOperationalEnvironmentId = this.queryServiceModelResponse.getVnfOperationalEnvId();
            OperationalEnvironment aaiOpEnv = getAAIOperationalEnvironment(vnfOperationalEnvironmentId);
            if (aaiOpEnv != null) {
                aaiOpEnv.setOperationalEnvironmentStatus("ACTIVE");
                aaiHelper.updateAaiOperationalEnvironment(vnfOperationalEnvironmentId, aaiOpEnv);
            } else {
                requestDb.updateInfraFailureCompletion("Unable to update ACTIVATE status in AAI. ", this.origRequestId, this.queryServiceModelResponse.getVnfOperationalEnvId());
            }
        }
    } catch (Exception e) {
        logger.error("Exception in execute", e);
        requestDb.updateInfraFailureCompletion(e.getMessage(), this.origRequestId, this.queryServiceModelResponse.getVnfOperationalEnvId());
    }
}
Also used : Distribution(org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution) ApiException(org.onap.so.apihandlerinfra.exceptions.ApiException) ValidateException(org.onap.so.apihandlerinfra.exceptions.ValidateException) OperationalEnvironment(org.onap.aai.domain.yang.OperationalEnvironment)

Example 2 with Distribution

use of org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution in project so by onap.

the class ModelDistributionRequest method updateModelDistributionStatus.

@PATCH
@Path("/{version:[vV][1]}/distributions/{distributionId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(description = "Update model distribution status", responses = @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))))
@Transactional
public Response updateModelDistributionStatus(String requestJSON, @PathParam("version") String version, @PathParam("distributionId") String distributionId) throws ApiException {
    Distribution distributionRequest;
    try {
        ObjectMapper mapper = new ObjectMapper();
        distributionRequest = mapper.readValue(requestJSON, Distribution.class);
    } catch (IOException e) {
        ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, ErrorCode.SchemaError).build();
        ValidateException validateException = new ValidateException.Builder("Mapping of request to JSON object failed.  " + e.getMessage(), HttpStatus.SC_BAD_REQUEST, ErrorNumbers.SVC_BAD_PARAMETER).cause(e).errorInfo(errorLoggerInfo).build();
        throw validateException;
    }
    try {
        parse(distributionRequest);
    } catch (ValidationException e) {
        ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, ErrorCode.SchemaError).build();
        ValidateException validateException = new ValidateException.Builder(e.getMessage(), HttpStatus.SC_BAD_REQUEST, ErrorNumbers.SVC_BAD_PARAMETER).cause(e).errorInfo(errorLoggerInfo).build();
        throw validateException;
    }
    CloudOrchestrationRequest cor = new CloudOrchestrationRequest();
    cor.setDistribution(distributionRequest);
    cor.setDistributionId(distributionId);
    TenantIsolationRunnable runnable = tenantIsolationRunnable.get();
    runnable.run(Action.distributionStatus, null, cor, null);
    return Response.ok().build();
}
Also used : ErrorLoggerInfo(org.onap.so.apihandlerinfra.logging.ErrorLoggerInfo) ValidateException(org.onap.so.apihandlerinfra.exceptions.ValidateException) ValidationException(org.onap.so.exceptions.ValidationException) Distribution(org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution) IOException(java.io.IOException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Path(javax.ws.rs.Path) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) Operation(io.swagger.v3.oas.annotations.Operation) PATCH(javax.ws.rs.PATCH) Transactional(javax.transaction.Transactional)

Example 3 with Distribution

use of org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution in project so by onap.

the class ActivateVnfStatusOperationalEnvironmentTest method executionTest_ERROR_Status_And_ABORT.

@Test
public void executionTest_ERROR_Status_And_ABORT() throws JsonProcessingException {
    OperationalEnvServiceModelStatus serviceModelDb = new OperationalEnvServiceModelStatus();
    serviceModelDb.setRequestId(requestIdOrig);
    serviceModelDb.setServiceModelVersionId(serviceModelVersionId);
    serviceModelDb.setWorkloadContext(workloadContext);
    serviceModelDb.setRecoveryAction(recoveryActionAbort);
    serviceModelDb.setOperationalEnvId(operationalEnvironmentId);
    serviceModelDb.setRetryCount(retryCountThree);
    serviceModelDb.setServiceModelVersionDistrStatus(statusError);
    serviceModelDb.setVnfOperationalEnvId(vnfOperationalEnvironmentId);
    OperationalEnvDistributionStatus distributionDb = new OperationalEnvDistributionStatus();
    distributionDb.setDistributionId(sdcDistributionId);
    distributionDb.setRequestId(requestIdOrig);
    distributionDb.setOperationalEnvId(operationalEnvironmentId);
    distributionDb.setDistributionIdStatus(statusError);
    distributionDb.setServiceModelVersionId(serviceModelVersionId);
    distributionDb.setDistributionIdErrorReason(null);
    // prepare distribution obj
    Distribution distribution = new Distribution();
    distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
    request.setDistribution(distribution);
    request.setDistributionId(sdcDistributionId);
    request.setOperationalEnvironmentId(operationalEnvironmentId);
    InfraActiveRequests iar = new InfraActiveRequests();
    iar.setRequestId(requestIdOrig);
    iar.setRequestStatus("PENDING");
    wireMockServer.stubFor(get(urlPathEqualTo("/operationalEnvServiceModelStatus/search/findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(serviceModelDb)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathEqualTo("/operationalEnvDistributionStatus/" + sdcDistributionId)).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(distributionDb)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathEqualTo("/infraActiveRequests/" + requestIdOrig)).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(iar)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(post(urlPathEqualTo("/operationalEnvDistributionStatus/")).withRequestBody(containing("{\"distributionId\":\"TEST_distributionId\",\"operationalEnvId\":\"TEST_operationalEnvironmentId\",\"serviceModelVersionId\":\"TEST_serviceModelVersionId\",\"requestId\":\"TEST_requestIdOrig\",\"distributionIdStatus\":\"DISTRIBUTION_COMPLETE_ERROR\"")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(post(urlPathEqualTo("/operationalEnvServiceModelStatus/")).withRequestBody(containing("{\"requestId\":\"TEST_requestIdOrig\",\"operationalEnvId\":\"TEST_operationalEnvironmentId\",\"serviceModelVersionId\":\"TEST_serviceModelVersionId\",\"serviceModelVersionDistrStatus\":\"DISTRIBUTION_COMPLETE_ERROR\"")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathMatching("/aai/" + AAIVersion.LATEST + "/cloud-infrastructure/operational-environments/.*")).willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(json).withStatus(HttpStatus.SC_ACCEPTED)));
    wireMockServer.stubFor(put(urlPathMatching("/aai/" + AAIVersion.LATEST + "/cloud-infrastructure/operational-environments/.*")).willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.SC_ACCEPTED)));
    try {
        activateVnfStatus.execute(requestId, request);
    } catch (ApiException e) {
        assertThat(e.getMessage(), startsWith("Overall Activation process is a Failure. "));
        assertEquals(e.getHttpResponseCode(), HttpStatus.SC_BAD_REQUEST);
        assertEquals(e.getMessageID(), ErrorNumbers.SVC_DETAILED_SERVICE_ERROR);
    }
}
Also used : OperationalEnvDistributionStatus(org.onap.so.db.request.beans.OperationalEnvDistributionStatus) Distribution(org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution) OperationalEnvServiceModelStatus(org.onap.so.db.request.beans.OperationalEnvServiceModelStatus) InfraActiveRequests(org.onap.so.db.request.beans.InfraActiveRequests) ApiException(org.onap.so.apihandlerinfra.exceptions.ApiException) BaseTest(org.onap.so.apihandlerinfra.BaseTest) Test(org.junit.Test)

Example 4 with Distribution

use of org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution in project so by onap.

the class ActivateVnfStatusOperationalEnvironmentTest method executionTest_ERROR_Status_And_RETRY_And_ErrorSdc.

@Test
public void executionTest_ERROR_Status_And_RETRY_And_ErrorSdc() throws JsonProcessingException {
    OperationalEnvServiceModelStatus serviceModelDb = new OperationalEnvServiceModelStatus();
    serviceModelDb.setRequestId(requestIdOrig);
    serviceModelDb.setServiceModelVersionId(serviceModelVersionId);
    serviceModelDb.setWorkloadContext(workloadContext);
    serviceModelDb.setRecoveryAction(recoveryActionRetry);
    serviceModelDb.setOperationalEnvId(operationalEnvironmentId);
    serviceModelDb.setRetryCount(retryCountThree);
    serviceModelDb.setServiceModelVersionDistrStatus(statusError);
    serviceModelDb.setVnfOperationalEnvId(vnfOperationalEnvironmentId);
    OperationalEnvDistributionStatus distributionDb = new OperationalEnvDistributionStatus();
    distributionDb.setDistributionId(sdcDistributionId);
    distributionDb.setRequestId(requestIdOrig);
    distributionDb.setOperationalEnvId(operationalEnvironmentId);
    distributionDb.setDistributionIdStatus(statusError);
    distributionDb.setServiceModelVersionId(serviceModelVersionId);
    distributionDb.setDistributionIdErrorReason(null);
    // prepare distribution obj
    Distribution distribution = new Distribution();
    distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
    distribution.setErrorReason("Unable to process.");
    request.setDistribution(distribution);
    request.setDistributionId(sdcDistributionId);
    request.setOperationalEnvironmentId(operationalEnvironmentId);
    // ERROR in sdc
    JSONObject jsonMessages = new JSONObject();
    jsonMessages.put("statusCode", "409");
    jsonMessages.put("message", "Undefined Error Message!");
    jsonMessages.put("messageId", "SVC4675");
    jsonMessages.put("text", "Error: Service state is invalid for this action.");
    JSONObject jsonServException = new JSONObject();
    jsonServException.put("serviceException", jsonMessages);
    JSONObject jsonErrorRequest = new JSONObject();
    jsonErrorRequest.put("requestError", jsonServException);
    InfraActiveRequests iar = new InfraActiveRequests();
    iar.setRequestId(requestIdOrig);
    iar.setRequestStatus("PENDING");
    wireMockServer.stubFor(get(urlPathEqualTo("/operationalEnvServiceModelStatus/search/findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(serviceModelDb)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathEqualTo("/operationalEnvDistributionStatus/" + sdcDistributionId)).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(distributionDb)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathEqualTo("/infraActiveRequests/" + requestIdOrig)).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(iar)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(post(urlPathEqualTo("/infraActiveRequests/")).withRequestBody(containing("operationalEnvId\":\"VNF_operationalEnvironmentId\"")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(post(urlPathMatching("/sdc/v1/catalog/services/.*")).willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(jsonMessages.toString()).withStatus(HttpStatus.SC_CONFLICT)));
    wireMockServer.stubFor(get(urlPathMatching("/aai/" + AAIVersion.LATEST + "/cloud-infrastructure/operational-environments/.*")).willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(json).withStatus(HttpStatus.SC_ACCEPTED)));
    wireMockServer.stubFor(put(urlPathMatching("/aai/" + AAIVersion.LATEST + "/cloud-infrastructure/operational-environments/.*")).willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.SC_ACCEPTED)));
    try {
        activateVnfStatus.execute(requestId, request);
    } catch (ApiException e) {
        assertThat(e.getMessage(), startsWith("Failure calling SDC: statusCode: "));
        assertEquals(e.getHttpResponseCode(), HttpStatus.SC_BAD_REQUEST);
        assertEquals(e.getMessageID(), ErrorNumbers.SVC_DETAILED_SERVICE_ERROR);
    }
}
Also used : JSONObject(org.json.JSONObject) OperationalEnvDistributionStatus(org.onap.so.db.request.beans.OperationalEnvDistributionStatus) Distribution(org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution) OperationalEnvServiceModelStatus(org.onap.so.db.request.beans.OperationalEnvServiceModelStatus) InfraActiveRequests(org.onap.so.db.request.beans.InfraActiveRequests) ApiException(org.onap.so.apihandlerinfra.exceptions.ApiException) BaseTest(org.onap.so.apihandlerinfra.BaseTest) Test(org.junit.Test)

Example 5 with Distribution

use of org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution in project so by onap.

the class ActivateVnfStatusOperationalEnvironmentTest method executionTest_ERROR_Status_And_SKIP.

@Test
public void executionTest_ERROR_Status_And_SKIP() throws Exception {
    OperationalEnvServiceModelStatus serviceModelDb = new OperationalEnvServiceModelStatus();
    serviceModelDb.setRequestId(requestIdOrig);
    serviceModelDb.setServiceModelVersionId(serviceModelVersionId);
    serviceModelDb.setWorkloadContext(workloadContext);
    serviceModelDb.setRecoveryAction(recoveryActionSkip);
    serviceModelDb.setOperationalEnvId(operationalEnvironmentId);
    serviceModelDb.setRetryCount(retryCountThree);
    serviceModelDb.setServiceModelVersionDistrStatus(statusError);
    serviceModelDb.setVnfOperationalEnvId(vnfOperationalEnvironmentId);
    OperationalEnvDistributionStatus distributionDb = new OperationalEnvDistributionStatus();
    distributionDb.setDistributionId(sdcDistributionId);
    distributionDb.setRequestId(requestIdOrig);
    distributionDb.setOperationalEnvId(operationalEnvironmentId);
    distributionDb.setDistributionIdStatus(statusError);
    distributionDb.setServiceModelVersionId(serviceModelVersionId);
    distributionDb.setDistributionIdErrorReason(null);
    // prepare distribution obj
    OperationalEnvDistributionStatus distributionStatus = new OperationalEnvDistributionStatus(sdcDistributionId, operationalEnvironmentId, serviceModelVersionId);
    distributionStatus.setDistributionIdStatus(Status.DISTRIBUTION_COMPLETE_ERROR.name());
    Distribution distribution = new Distribution();
    distribution.setStatus(Status.DISTRIBUTION_COMPLETE_ERROR);
    request.setDistribution(distribution);
    request.setDistributionId(sdcDistributionId);
    request.setOperationalEnvironmentId(operationalEnvironmentId);
    InfraActiveRequests iar = new InfraActiveRequests();
    iar.setRequestId(requestIdOrig);
    iar.setRequestStatus("PENDING");
    wireMockServer.stubFor(get(urlPathEqualTo("/operationalEnvServiceModelStatus/search/findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(serviceModelDb)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathEqualTo("/operationalEnvDistributionStatus/" + sdcDistributionId)).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(distributionDb)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathEqualTo("/infraActiveRequests/" + requestIdOrig)).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody(mapper.writeValueAsString(iar)).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(post(urlPathEqualTo("/operationalEnvServiceModelStatus/")).withRequestBody(equalTo("{\"requestId\":\"TEST_requestIdOrig\",\"operationalEnvId\":\"TEST_operationalEnvironmentId\",\"serviceModelVersionId\":\"TEST_serviceModelVersionId\",\"serviceModelVersionDistrStatus\":\"DISTRIBUTION_COMPLETE_OK\",\"recoveryAction\":\"SKIP\",\"retryCount\":0,\"workloadContext\":\"TEST_workloadContext\",\"createTime\":null,\"modifyTime\":null,\"vnfOperationalEnvId\":\"VNF_operationalEnvironmentId\"}")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(post(urlPathEqualTo("/operationalEnvDistributionStatus/")).withRequestBody(equalTo("{\"distributionId\":\"TEST_distributionId\",\"operationalEnvId\":\"TEST_operationalEnvironmentId\",\"serviceModelVersionId\":\"TEST_serviceModelVersionId\",\"requestId\":\"TEST_requestIdOrig\",\"distributionIdStatus\":\"DISTRIBUTION_COMPLETE_OK\",\"distributionIdErrorReason\":\"\",\"createTime\":null,\"modifyTime\":null}")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withStatus(HttpStatus.SC_OK)));
    wireMockServer.stubFor(get(urlPathMatching("/aai/" + AAIVersion.LATEST + "/cloud-infrastructure/operational-environments/.*")).willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(json).withStatus(HttpStatus.SC_ACCEPTED)));
    wireMockServer.stubFor(put(urlPathMatching("/aai/" + AAIVersion.LATEST + "/cloud-infrastructure/operational-environments/.*")).willReturn(aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.SC_ACCEPTED)));
    activateVnfStatus.execute(requestId, request);
}
Also used : OperationalEnvDistributionStatus(org.onap.so.db.request.beans.OperationalEnvDistributionStatus) Distribution(org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution) OperationalEnvServiceModelStatus(org.onap.so.db.request.beans.OperationalEnvServiceModelStatus) InfraActiveRequests(org.onap.so.db.request.beans.InfraActiveRequests) BaseTest(org.onap.so.apihandlerinfra.BaseTest) Test(org.junit.Test)

Aggregations

Distribution (org.onap.so.apihandlerinfra.tenantisolationbeans.Distribution)10 Test (org.junit.Test)8 BaseTest (org.onap.so.apihandlerinfra.BaseTest)8 OperationalEnvDistributionStatus (org.onap.so.db.request.beans.OperationalEnvDistributionStatus)7 OperationalEnvServiceModelStatus (org.onap.so.db.request.beans.OperationalEnvServiceModelStatus)7 InfraActiveRequests (org.onap.so.db.request.beans.InfraActiveRequests)5 JSONObject (org.json.JSONObject)4 ApiException (org.onap.so.apihandlerinfra.exceptions.ApiException)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 ValidateException (org.onap.so.apihandlerinfra.exceptions.ValidateException)2 Operation (io.swagger.v3.oas.annotations.Operation)1 IOException (java.io.IOException)1 Transactional (javax.transaction.Transactional)1 Consumes (javax.ws.rs.Consumes)1 PATCH (javax.ws.rs.PATCH)1 Path (javax.ws.rs.Path)1 Produces (javax.ws.rs.Produces)1 Ignore (org.junit.Ignore)1 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)1 OperationalEnvironment (org.onap.aai.domain.yang.OperationalEnvironment)1