Dynamic Cloud Owner Support
[so.git] / bpmn / MSOCommonBPMN / src / main / java / org / onap / so / bpmn / servicedecomposition / tasks / BBInputSetup.java
index fc48996..769d3e4 100644 (file)
@@ -101,7 +101,6 @@ public class BBInputSetup implements JavaDelegate {
        private static final String LOOKUP_KEY_MAP_VAR_NAME = "lookupKeyMap";
        private static final String GBB_INPUT_VAR_NAME = "gBBInput";
        private static final String EXECUTE_BB_VAR_NAME = "buildingBlock";
-       private static final String CLOUD_OWNER = "att-aic";
        private static final String VOLUME_GROUP = "VolumeGroup";
        private static final String VF_MODULE = "VfModule";
        private static final String NETWORK = "Network";
@@ -190,14 +189,19 @@ public class BBInputSetup implements JavaDelegate {
                if(requestDetails == null) {
                        requestDetails = bbInputSetupUtils.getRequestDetails(requestId);
                }
-               ModelType modelType = requestDetails.getModelInfo().getModelType();
-               if (aLaCarte && modelType.equals(ModelType.service)) {
-                       return this.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
-               } else if (aLaCarte && !modelType.equals(ModelType.service)) {
-                       return this.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
-                                       vnfType);
-               } else {
-                       return this.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
+               if (requestDetails.getModelInfo() == null) {
+                       return this.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
+               }
+               else {
+                       ModelType modelType = requestDetails.getModelInfo().getModelType();
+                       if (aLaCarte && modelType.equals(ModelType.service)) {
+                               return this.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
+                       } else if (aLaCarte && !modelType.equals(ModelType.service)) {
+                               return this.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
+                                               vnfType);
+                       } else {
+                               return this.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
+                       }
                }
        }
 
@@ -236,6 +240,25 @@ public class BBInputSetup implements JavaDelegate {
                        throw new Exception("Could not find relevant information for related Service Instance");
                }
        }
+       
+       protected GeneralBuildingBlock getGBBCM(ExecuteBuildingBlock executeBB,
+                       RequestDetails requestDetails, Map<ResourceKey, String> lookupKeyMap, String requestAction,
+                       String resourceId) throws Exception {           
+               ServiceInstance serviceInstance = new ServiceInstance();
+               String serviceInstanceId = lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID);
+               serviceInstance.setServiceInstanceId(serviceInstanceId);
+               
+               List<GenericVnf> genericVnfs = serviceInstance.getVnfs();
+               
+               String vnfId = lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID);
+               org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
+               
+               GenericVnf genericVnf = this.mapperLayer.mapAAIGenericVnfIntoGenericVnf(aaiGenericVnf);
+               genericVnfs.add(genericVnf);            
+               
+               return this.populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance, executeBB, requestAction, new Customer());
+               
+       }
 
        protected void populateObjectsOnAssignAndCreateFlows(RequestDetails requestDetails, Service service, String bbName,
                        ServiceInstance serviceInstance, Map<ResourceKey, String> lookupKeyMap, String resourceId, String vnfType)
@@ -360,7 +383,7 @@ public class BBInputSetup implements JavaDelegate {
                                if (lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID) == null) {
                                        for(VolumeGroup volumeGroup : tempVnf.getVolumeGroups()) {
                                                String volumeGroupCustId = 
-                                                               this.bbInputSetupUtils.getAAIVolumeGroup(CLOUD_OWNER
+                                                               this.bbInputSetupUtils.getAAIVolumeGroup(cloudConfiguration.getCloudOwner()
                                                                                cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId()).getModelCustomizationId();
                                                if(modelInfo.getModelCustomizationId().equalsIgnoreCase(volumeGroupCustId)) {
                                                        lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, volumeGroup.getVolumeGroupId());
@@ -777,9 +800,8 @@ public class BBInputSetup implements JavaDelegate {
                requestContext.setAction(requestAction);
                requestContext.setMsoRequestId(executeBB.getRequestId());
                org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = bbInputSetupUtils
-                               .getCloudRegion(requestDetails.getCloudConfiguration(), CLOUD_OWNER);
-               CloudRegion cloudRegion = mapperLayer.mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion,
-                               CLOUD_OWNER);
+                               .getCloudRegion(requestDetails.getCloudConfiguration());
+               CloudRegion cloudRegion = mapperLayer.mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
                outputBB.setOrchContext(orchContext);
                outputBB.setRequestContext(requestContext);
                outputBB.setCloudRegion(cloudRegion);
@@ -790,7 +812,9 @@ public class BBInputSetup implements JavaDelegate {
                        customer = mapCustomer(globalCustomerId, subscriptionServiceType);
                }
                outputBB.setServiceInstance(serviceInstance);
-               customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
+               if (customer.getServiceSubscription() != null) {
+                       customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
+               }
                outputBB.setCustomer(customer);
                return outputBB;
        }
@@ -927,7 +951,9 @@ public class BBInputSetup implements JavaDelegate {
                if(collectionNetworkResourceCust != null) {
                        if((bbName.equalsIgnoreCase(AssignFlows.NETWORK_A_LA_CARTE.toString())
                                || bbName.equalsIgnoreCase(AssignFlows.NETWORK_MACRO.toString()))) {
-                               serviceInstance.getNetworks().add(createNetwork(lookupKeyMap, null, networkId, null));
+                               L3Network network = createNetwork(lookupKeyMap, null, networkId, null);                         
+                               serviceInstance.getNetworks().add(network);
+                               return network;
                        } else {
                                for (L3Network network : serviceInstance.getNetworks()) {
                                        if (network.getNetworkId().equalsIgnoreCase(networkId)) {
@@ -953,9 +979,8 @@ public class BBInputSetup implements JavaDelegate {
                        String requestAction, CloudConfiguration cloudConfiguration) throws Exception {
                ServiceInstance serviceInstance = gBB.getServiceInstance();
                if (cloudConfiguration != null && requestAction.equalsIgnoreCase("deleteInstance")) {
-                       org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfiguration,
-                                       CLOUD_OWNER);
-                       CloudRegion cloudRegion = mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion, CLOUD_OWNER);
+                       org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfiguration);
+                       CloudRegion cloudRegion = mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion);
                        gBB.setCloudRegion(cloudRegion);
                }
                if (bbName.contains(VNF)) {
@@ -1002,7 +1027,7 @@ public class BBInputSetup implements JavaDelegate {
                                                this.mapCatalogVnf(vnf, vnfModelInfo, service);
                                                lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnf.getVnfId());
                                                if (cloudConfiguration != null) {
-                                                       String volumeGroupCustomizationUUID = this.bbInputSetupUtils.getAAIVolumeGroup(CLOUD_OWNER,
+                                                       String volumeGroupCustomizationUUID = this.bbInputSetupUtils.getAAIVolumeGroup(cloudConfiguration.getCloudOwner(),
                                                                        cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId())
                                                                        .getModelCustomizationId();
                                                        ModelInfo volumeGroupModelInfo = new ModelInfo();
@@ -1088,6 +1113,7 @@ public class BBInputSetup implements JavaDelegate {
                                String vfModuleId = lookupKeyMap.get(ResourceKey.VF_MODULE_ID);
                                CloudConfiguration cloudConfig = new CloudConfiguration();
                                cloudConfig.setLcpCloudRegionId(cloudRegion.getLcpCloudRegionId());
+                               cloudConfig.setCloudOwner(cloudRegion.getCloudOwner());
                                this.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap, vfModuleId, null,
                                                vfModules.getInstanceName(), vfModules.getInstanceParams(), cloudConfig);
                        }
@@ -1165,9 +1191,8 @@ public class BBInputSetup implements JavaDelegate {
                }
                }
                if(cloudConfiguration != null) {
-                       org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfiguration,
-                                       CLOUD_OWNER);
-                       return mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion, CLOUD_OWNER);
+                       org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfiguration);
+                       return mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion);
                } else {
                        msoLogger.debug("Could not find any cloud configuration for this request.");
                        return null;