use of org.onap.so.serviceinstancebeans.ServiceInstancesRequest in project so by onap.
the class VfModules method deleteVfModuleInstance.
@DELETE
@ResponseUpdater
@Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(description = "Delete a VfModule instance", responses = @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = ServiceInstancesResponse.class)))))
@Transactional
public Response deleteVfModuleInstance(@PathParam("version") String version, @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId, @PathParam("vfmoduleInstanceId") String vfmoduleInstanceId, @Context ContainerRequestContext requestContext) throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException, ValidateException {
String requestId = restHandler.getRequestId(requestContext);
String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
InfraActiveRequests currentRequest = restHandler.createInfraActiveRequestForDelete(requestId, vfmoduleInstanceId, serviceInstanceId, vnfInstanceId, requestorId, source, requestURL);
ServiceInstancesRequest request = requestBuilder.buildVFModuleDeleteRequest(vnfInstanceId, vfmoduleInstanceId, ModelType.vfModule);
restHandler.saveInstanceName(request, currentRequest);
restHandler.checkDuplicateRequest(serviceInstanceId, vnfInstanceId, vfmoduleInstanceId, request.getRequestDetails().getRequestInfo().getInstanceName(), currentRequest.getRequestId());
Recipe recipe = restHandler.findVfModuleRecipe(request.getRequestDetails().getModelInfo().getModelCustomizationId(), ModelType.vfModule.toString(), Action.deleteInstance.toString());
restHandler.callWorkflowEngine(restHandler.buildRequestParams(request, restHandler.getRequestUri(requestContext), requestId, serviceInstanceId, vnfInstanceId, vfmoduleInstanceId), recipe.getOrchestrationUri());
ServiceInstancesResponse response = restHandler.createResponse(vfmoduleInstanceId, requestId, requestContext);
return Response.status(HttpStatus.ACCEPTED.value()).entity(response).build();
}
use of org.onap.so.serviceinstancebeans.ServiceInstancesRequest in project so by onap.
the class Volumes method deleteVfModuleInstance.
@DELETE
@ResponseUpdater
@Path("/{version:[vV][8]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(description = "Delete a VfModule instance", responses = @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = ServiceInstancesResponse.class)))))
@Transactional
public Response deleteVfModuleInstance(@PathParam("version") String version, @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId, @PathParam("volumeGroupInstanceId") String volumeGroupId, @Context ContainerRequestContext requestContext) throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException, ValidateException {
String requestId = volumeRestHandler.getRequestId(requestContext);
String requestorId = MDC.get(HttpHeadersConstants.REQUESTOR_ID);
String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
InfraActiveRequests currentRequest = volumeRestHandler.createInfraActiveRequestForDelete(requestId, volumeGroupId, serviceInstanceId, vnfInstanceId, requestorId, source, requestURL);
ServiceInstancesRequest request = requestBuilder.buildVolumeGroupDeleteRequest(vnfInstanceId, volumeGroupId);
volumeRestHandler.saveInstanceName(request, currentRequest);
volumeRestHandler.checkDuplicateRequest(serviceInstanceId, vnfInstanceId, volumeGroupId, request.getRequestDetails().getRequestInfo().getInstanceName(), currentRequest.getRequestId());
Recipe recipe = vfModuleRestHandler.findVfModuleRecipe(request.getRequestDetails().getModelInfo().getModelCustomizationId(), ModelType.volumeGroup.toString(), Action.deleteInstance.toString());
volumeRestHandler.callWorkflowEngine(volumeRestHandler.buildRequestParams(request, volumeRestHandler.getRequestUri(requestContext), requestId, serviceInstanceId, vnfInstanceId, volumeGroupId), recipe.getOrchestrationUri());
ServiceInstancesResponse response = volumeRestHandler.createResponse(volumeGroupId, requestId, requestContext);
return Response.status(HttpStatus.ACCEPTED.value()).entity(response).build();
}
use of org.onap.so.serviceinstancebeans.ServiceInstancesRequest in project so by onap.
the class WorkflowActionTest method getConfigBuildingBlocksNullConfigurationTest.
@Test
public void getConfigBuildingBlocksNullConfigurationTest() throws Exception {
String gAction = "deleteInstance";
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
WorkflowType resourceType = WorkflowType.VFMODULE;
execution.setVariable("mso-request-id", "00f704ca-c5e5-4f95-a72c-6889db7b0688");
execution.setVariable("requestAction", gAction);
String bpmnRequest = new String(Files.readAllBytes(Paths.get("src/test/resources/__files/VfModuleCreateWithFabric.json")));
execution.setVariable("bpmnRequest", bpmnRequest);
execution.setVariable("vnfId", "1234");
execution.setVariable("vfModuleId", "vfModuleId1234");
execution.setVariable("requestUri", "v7/serviceInstances/f647e3ef-6d2e-4cd3-bff4-8df4634208de/vnfs/b80b16a5-f80d-4ffa-91c8-bd47c7438a3d/vfModules");
ServiceInstancesRequest sIRequest = mapper.readValue(bpmnRequest, ServiceInstancesRequest.class);
RequestDetails requestDetails = sIRequest.getRequestDetails();
String requestAction = "deleteInstance";
String requestId = "9c944122-d161-4280-8594-48c06a9d96d5";
boolean aLaCarte = true;
String apiVersion = "7";
String vnfType = "vnfType";
String key = "00d15ebb-c80e-43c1-80f0-90c40dde70b0";
String resourceId = "d1d35800-783d-42d3-82f6-d654c5054a6e";
Resource resourceKey = new Resource(resourceType, key, aLaCarte, null);
WorkflowResourceIds workflowResourceIds = SPY_workflowAction.populateResourceIdsFromApiHandler(execution);
List<OrchestrationFlow> orchFlows = createFlowList("DeactivateVfModuleBB", "DeleteVfModuleBB", "UnassignVfModuleBB", "DeleteFabricConfigurationBB");
ConfigBuildingBlocksDataObject dataObj = new ConfigBuildingBlocksDataObject().setsIRequest(sIRequest).setOrchFlows(orchFlows).setRequestId(requestId).setResourceKey(resourceKey).setApiVersion(apiVersion).setResourceId(resourceId).setRequestAction(requestAction).setaLaCarte(aLaCarte).setVnfType(vnfType).setWorkflowResourceIds(workflowResourceIds).setRequestDetails(requestDetails).setExecution(execution);
org.onap.aai.domain.yang.GenericVnf vnf = new org.onap.aai.domain.yang.GenericVnf();
vnf.setVnfId("vnf0");
vnf.setModelCustomizationId("modelCustomizationId");
when(bbSetupUtils.getAAIGenericVnf(any())).thenReturn(vnf);
org.onap.aai.domain.yang.VfModule vfModule = new org.onap.aai.domain.yang.VfModule();
vfModule.setModelCustomizationId("modelCustomizationId");
/* this is a test case where configuration for vnfc is null */
org.onap.aai.domain.yang.Configuration config1 = null;
org.onap.aai.domain.yang.Configuration config2 = new org.onap.aai.domain.yang.Configuration();
config2.setConfigurationId("config2");
List<org.onap.aai.domain.yang.Vnfc> vnfcs = new ArrayList<org.onap.aai.domain.yang.Vnfc>();
org.onap.aai.domain.yang.Vnfc vnfc1 = new org.onap.aai.domain.yang.Vnfc();
vnfc1.setVnfcName("zauk53avetd02svm001");
org.onap.aai.domain.yang.Vnfc vnfc2 = new org.onap.aai.domain.yang.Vnfc();
vnfc2.setVnfcName("zauk53avetd02tvm001");
vnfcs.add(vnfc1);
vnfcs.add(vnfc2);
when(bbSetupUtils.getAAIVfModule(any(), any())).thenReturn(vfModule);
doReturn(vnfcs).when(SPY_workflowAction).getRelatedResourcesInVfModule(any(), any(), eq(org.onap.aai.domain.yang.Vnfc.class), eq(Types.VNFC));
doReturn(config1).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc1), eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
doReturn(config2).when(SPY_workflowAction).getRelatedResourcesInVnfc(eq(vnfc2), eq(org.onap.aai.domain.yang.Configuration.class), eq(Types.CONFIGURATION));
List<ExecuteBuildingBlock> results = SPY_workflowAction.getConfigBuildingBlocks(dataObj);
assertFalse(results.isEmpty());
assertEquals(1, results.size());
assertEquals("config2", results.get(0).getWorkflowResourceIds().getConfigurationId());
assertEquals("zauk53avetd02tvm001", results.get(0).getConfigurationResourceKeys().getVnfcName());
}
use of org.onap.so.serviceinstancebeans.ServiceInstancesRequest in project so by onap.
the class UpgradePreWorkflowValidatorTest method validateModelInvariantMismatch.
@Test
public void validateModelInvariantMismatch() throws JsonProcessingException {
ServiceInstancesRequest sir = new ServiceInstancesRequest();
sir.setRequestDetails(new RequestDetails());
sir.getRequestDetails().setModelInfo(new ModelInfo());
sir.getRequestDetails().getModelInfo().setModelInvariantId(UUID.randomUUID().toString());
Resource serviceResource = new Resource(WorkflowType.SERVICE, "", false, null);
String aaiModelInvariantId = UUID.randomUUID().toString();
serviceResource.setModelInvariantId(aaiModelInvariantId);
BuildingBlockExecution execution = createExecution(sir, Arrays.asList(serviceResource));
Optional<String> message = validator.validate(execution);
assertTrue(message.isPresent());
assertTrue(message.get().startsWith("Request service modelInvariantId"));
}
use of org.onap.so.serviceinstancebeans.ServiceInstancesRequest in project so by onap.
the class UpgradePreWorkflowValidatorTest method validateNoVnfsInAAI.
@Test
public void validateNoVnfsInAAI() throws JsonProcessingException {
ServiceInstancesRequest sir = new ServiceInstancesRequest();
sir.setRequestDetails(new RequestDetails());
sir.getRequestDetails().setModelInfo(new ModelInfo());
String modelInvariantId = UUID.randomUUID().toString();
sir.getRequestDetails().getModelInfo().setModelInvariantId(modelInvariantId);
Resource serviceResource = new Resource(WorkflowType.SERVICE, "", false, null);
serviceResource.setModelInvariantId(modelInvariantId);
BuildingBlockExecution execution = createExecution(sir, Arrays.asList(serviceResource));
Optional<String> message = validator.validate(execution);
assertThat(message).isEmpty();
}
Aggregations