Adding Generic VNF information in ControllerExeuctionBB flow 08/106108/1
authorsunilb <sb00577584@techmahindra.com>
Thu, 16 Apr 2020 15:04:26 +0000 (20:34 +0530)
committersunilb <sb00577584@techmahindra.com>
Thu, 16 Apr 2020 15:04:26 +0000 (20:34 +0530)
Issue-ID: SO-2806
Signed-off-by: sunilb <sb00577584@techmahindra.com>
Change-Id: I3d34159004f398cd3d44a67468be26668dd67e17

bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java

index e774899..01a0c3a 100644 (file)
@@ -107,6 +107,7 @@ public class BBInputSetup implements JavaDelegate {
     private static final String NETWORK_COLLECTION = "NetworkCollection";
     private static final String PREPROV = "PREPROV";
     private static final String CREATEVOLUME = "CreateVolume";
+    private static final String CONTROLLER = "Controller";
 
     @Autowired
     private BBInputSetupUtils bbInputSetupUtils;
@@ -1386,7 +1387,8 @@ public class BBInputSetup implements JavaDelegate {
             cloudRegion = mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion);
         }
         gBB.setCloudRegion(cloudRegion);
-        if (bbName.contains(VNF)) {
+        if (bbName.contains(VNF) || (bbName.contains(CONTROLLER)
+                && (VNF).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope()))) {
             for (GenericVnf genericVnf : serviceInstance.getVnfs()) {
                 if (lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID) != null
                         && genericVnf.getVnfId().equalsIgnoreCase(lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID))) {
@@ -1398,7 +1400,8 @@ public class BBInputSetup implements JavaDelegate {
                     this.mapCatalogVnf(genericVnf, modelInfo, service);
                 }
             }
-        } else if (bbName.contains(VF_MODULE)) {
+        } else if (bbName.contains(VF_MODULE) || (bbName.contains(CONTROLLER)
+                && (VF_MODULE).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope()))) {
             for (GenericVnf vnf : serviceInstance.getVnfs()) {
                 for (VfModule vfModule : vnf.getVfModules()) {
                     if (lookupKeyMap.get(ResourceKey.VF_MODULE_ID) != null
@@ -1502,7 +1505,8 @@ public class BBInputSetup implements JavaDelegate {
         BBInputSetupParameter parameter =
                 new BBInputSetupParameter.Builder().setRequestId(executeBB.getRequestId()).setService(service)
                         .setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).build();
-        if (bbName.contains(VNF)) {
+        if (bbName.contains(VNF) || (bbName.contains(CONTROLLER)
+                && (VNF).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope()))) {
             vnfs = findVnfsByKey(key, resources, vnfs);
             String vnfId = lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID);
             // This stores the vnf id in request db to be retrieved later when
@@ -1530,7 +1534,8 @@ public class BBInputSetup implements JavaDelegate {
             resources.getPnfs().stream()
                     .filter(pnfs -> Objects.equals(key, pnfs.getModelInfo().getModelCustomizationId())).findFirst()
                     .ifPresent(pnfs -> BBInputSetupPnf.populatePnfToServiceInstance(pnfs, pnfId, serviceInstance));
-        } else if (bbName.contains(VF_MODULE) || bbName.contains(VOLUME_GROUP)) {
+        } else if (bbName.contains(VF_MODULE) || bbName.contains(VOLUME_GROUP) || (bbName.contains(CONTROLLER)
+                && (VF_MODULE).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope()))) {
             Pair<Vnfs, VfModules> vnfsAndVfModules = getVfModulesAndItsVnfsByKey(key, resources);
             if (vnfsAndVfModules != null) {
                 vfModules = vnfsAndVfModules.getValue1();
index be9965b..c730844 100644 (file)
@@ -2483,6 +2483,58 @@ public class BBInputSetupTest {
                 any(Service.class));
     }
 
+    @Test
+    public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
+        // given
+        String requestAction = "unassignInstance";
+        GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
+                GeneralBuildingBlock.class);
+        L3Network network = new L3Network();
+        network.setNetworkId("networkId");
+        gBB.getServiceInstance().getNetworks().add(network);
+        ServiceInstance serviceInstance = gBB.getServiceInstance();
+        ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
+                ExecuteBuildingBlock.class);
+        RequestDetails requestDetails = mapper
+                .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
+        requestDetails.getRequestParameters().setUserParams(null);
+        Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
+        Service service = Mockito.mock(Service.class);
+        CloudConfiguration cloudConfiguration = new CloudConfiguration();
+        cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
+        org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
+        org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
+        aaiNetwork.setModelCustomizationId("modelCustId");
+        GenericVnf vnf = new GenericVnf();
+        vnf.setVnfId("vnfId");
+        gBB.getServiceInstance().getVnfs().add(vnf);
+        org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
+        aaiVnf.setModelCustomizationId("modelCustId");
+
+        ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
+        executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
+        BuildingBlock buildingBlock = executeBB.getBuildingBlock();
+        buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
+        buildingBlock.setBpmnScope("VNF");
+
+        aaiServiceInstance.setModelVersionId("modelVersionId");
+        doReturn(service).when(SPY_bbInputSetupUtils)
+                .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
+        doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
+                .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
+        doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
+        doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
+        doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
+        doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
+                any(Service.class));
+        // when
+        SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
+                executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
+        // then
+        verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
+                any(Service.class));
+    }
+
     @Test
     public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
         // given
@@ -2534,6 +2586,66 @@ public class BBInputSetupTest {
                 any(Service.class));
     }
 
+    @Test
+    public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
+        // given
+        String requestAction = "unassignInstance";
+        GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
+                GeneralBuildingBlock.class);
+        L3Network network = new L3Network();
+        network.setNetworkId("networkId");
+        gBB.getServiceInstance().getNetworks().add(network);
+        ServiceInstance serviceInstance = gBB.getServiceInstance();
+        ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
+                ExecuteBuildingBlock.class);
+        RequestDetails requestDetails = mapper
+                .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
+        requestDetails.getRequestParameters().setUserParams(null);
+        Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
+        Service service = Mockito.mock(Service.class);
+        CloudConfiguration cloudConfiguration = new CloudConfiguration();
+        cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
+        org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
+        org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
+        aaiNetwork.setModelCustomizationId("modelCustId");
+        GenericVnf vnf = new GenericVnf();
+        vnf.setVnfId("vnfId");
+        gBB.getServiceInstance().getVnfs().add(vnf);
+        org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
+        aaiVnf.setModelCustomizationId("modelCustId");
+        VfModule vfModule = new VfModule();
+        vfModule.setVfModuleId("vfModuleId");
+        gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
+        org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
+        aaiVfModule.setModelCustomizationId("modelCustId");
+
+        ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
+        executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
+        BuildingBlock buildingBlock = executeBB.getBuildingBlock();
+        buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
+        buildingBlock.setBpmnScope("VfModule");
+
+        aaiServiceInstance.setModelVersionId("modelVersionId");
+        doReturn(service).when(SPY_bbInputSetupUtils)
+                .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
+        doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
+                .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
+        doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
+        doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
+        doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
+        doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
+                any(Service.class));
+        doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
+        // when
+        SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
+                executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
+        // then
+        verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
+                any(Service.class));
+        verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
+                any(Service.class), any(String.class));
+    }
+
     @Test
     public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
         // given