Conditional Macro Action Selection 67/83867/14
authorSunilB <sb00577584@techmahindra.com>
Mon, 15 Apr 2019 14:22:11 +0000 (19:52 +0530)
committerSunilB <sb00577584@techmahindra.com>
Mon, 15 Apr 2019 14:22:11 +0000 (19:52 +0530)
Update orchestration_flow_reference table and changes in
WorkflowActionBBTasks to Conditionally trigger ConfigAssignVnfBB And
ConfigDeployVnfBB building block.

Change-Id: I1bdb8a77223aef6855e4e1c9aa80dd026892e6f6
Issue-ID: SO-1702
Signed-off-by: sunilb <sb00577584@techmahindra.com>
adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__MacroData.sql
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java
mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/VnfCustomizationRepository.java

index 3fdc3c3..238c4cf 100644 (file)
@@ -40,14 +40,16 @@ INSERT INTO orchestration_flow_reference(COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, FL
 ('Service-Macro-Assign', '3', 'AssignVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Assign' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Assign', '4', 'AssignVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Assign' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Assign', '5', 'AssignVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Assign' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Assign', '6', 'ConfigAssignVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Assign' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Activate', '1', 'CreateNetworkBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Activate', '2', 'ActivateNetworkBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Activate', '3', 'CreateVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Activate', '4', 'ActivateVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Activate', '5', 'CreateVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Activate', '6', 'ActivateVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Activate', '7', 'ActivateVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Activate', '8', 'ActivateServiceInstance', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Activate', '7', 'ConfigDeployVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Activate', '8', 'ActivateVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Activate', '9', 'ActivateServiceInstance', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Activate' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Unassign', '1', 'UnassignVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Unassign' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Unassign', '2', 'UnassignVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Unassign' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Unassign', '3', 'UnassignVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Unassign' and CLOUD_OWNER = 'cloudOwner')),
@@ -59,15 +61,17 @@ INSERT INTO orchestration_flow_reference(COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, FL
 ('Service-Macro-Create', '4', 'AssignVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Create', '5', 'AssignVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Create', '6', 'AssignVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '7', 'CreateNetworkBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '8', 'ActivateNetworkBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '9', 'CreateVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '10', 'ActivateVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '11', 'CreateVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '12', 'ActivateVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '13', 'ActivateVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '14', 'ActivateNetworkCollectionBB',1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
-('Service-Macro-Create', '15', 'ActivateServiceInstanceBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '7', 'ConfigAssignVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '8', 'CreateNetworkBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '9', 'ActivateNetworkBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '10', 'CreateVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '11', 'ActivateVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '12', 'CreateVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '13', 'ActivateVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '14', 'ConfigDeployVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '15', 'ActivateVnfBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '16', 'ActivateNetworkCollectionBB',1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
+('Service-Macro-Create', '17', 'ActivateServiceInstanceBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Delete', '1', 'DeactivateVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Delete', '2', 'DeleteVfModuleBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'cloudOwner')),
 ('Service-Macro-Delete', '3', 'DeactivateVolumeGroupBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'cloudOwner')),
index 4514d24..f0a102d 100644 (file)
@@ -37,6 +37,7 @@ import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
 import org.onap.so.client.aai.AAIObjectType;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
+import org.onap.so.db.catalog.beans.VnfResourceCustomization;
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.db.request.client.RequestsDbClient;
@@ -83,6 +84,25 @@ public class WorkflowActionBBTasks {
         execution.setVariable("MacroRollback", false);
         int currentSequence = (int) execution.getVariable(G_CURRENT_SEQUENCE);
         ExecuteBuildingBlock ebb = flowsToExecute.get(currentSequence);
+
+        if (ebb.getBuildingBlock().getBpmnFlowName().equals("ConfigAssignVnfBB")
+                || ebb.getBuildingBlock().getBpmnFlowName().equals("ConfigDeployVnfBB")) {
+            String serviceInstanceId = ebb.getWorkflowResourceIds().getServiceInstanceId();
+            String vnfCustomizationUUID = ebb.getBuildingBlock().getKey();
+
+            List<VnfResourceCustomization> vnfResourceCustomizations =
+                    catalogDbClient.getVnfResourceCustomizationByModelUuid(serviceInstanceId);
+            if (vnfResourceCustomizations != null && vnfResourceCustomizations.size() >= 1) {
+                VnfResourceCustomization vrc = catalogDbClient.findVnfResourceCustomizationInList(vnfCustomizationUUID,
+                        vnfResourceCustomizations);
+                boolean skipConfigVNF = vrc.isSkipPostInstConf();
+                if (skipConfigVNF) {
+                    currentSequence++;
+                    ebb = flowsToExecute.get(currentSequence);
+                }
+            }
+        }
+
         boolean homing = (boolean) execution.getVariable("homing");
         boolean calledHoming = (boolean) execution.getVariable("calledHoming");
         if (homing && !calledHoming) {
index 029562a..a60927d 100644 (file)
@@ -40,10 +40,13 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.Spy;
+import org.onap.aai.domain.yang.GenericVnf;
 import org.onap.so.bpmn.BaseTaskTest;
 import org.onap.so.bpmn.core.WorkflowException;
 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
+import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
+import org.onap.so.db.catalog.beans.VnfResourceCustomization;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.springframework.core.env.Environment;
 
@@ -90,7 +93,30 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest {
         execution.setVariable("calledHoming", false);
         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList();
         ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
+
+        String vnfCustomizationUUID = "1234567";
+        String serviceInstanceId = "1234567";
+        BuildingBlock buildingBlock = new BuildingBlock();
+        buildingBlock.setBpmnFlowName("ConfigAssignVnfBB");
+        buildingBlock.setKey(vnfCustomizationUUID);
+        ebb.setBuildingBlock(buildingBlock);
+        WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
+        workflowResourceIds.setServiceInstanceId(serviceInstanceId);
+        ebb.setWorkflowResourceIds(workflowResourceIds);
         flowsToExecute.add(ebb);
+
+        List<VnfResourceCustomization> vnfResourceCustomizations = new ArrayList();
+        VnfResourceCustomization vrc = new VnfResourceCustomization();
+        vrc.setSkipPostInstConf(false);
+        vrc.setModelCustomizationUUID(vnfCustomizationUUID);
+        vnfResourceCustomizations.add(vrc);
+        GenericVnf genericVnf = new GenericVnf();
+        genericVnf.setModelCustomizationId(vnfCustomizationUUID);
+        doReturn(vnfResourceCustomizations).when(catalogDbClient)
+                .getVnfResourceCustomizationByModelUuid(serviceInstanceId);
+        doReturn(vrc).when(catalogDbClient).findVnfResourceCustomizationInList(vnfCustomizationUUID,
+                vnfResourceCustomizations);
+
         execution.setVariable("flowsToExecute", flowsToExecute);
         workflowActionBBTasks.selectBB(execution);
         boolean success = (boolean) execution.getVariable("completed");
@@ -110,7 +136,30 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest {
         List<ExecuteBuildingBlock> flowsToExecute = new ArrayList();
         ExecuteBuildingBlock ebb = new ExecuteBuildingBlock();
         ExecuteBuildingBlock ebb2 = new ExecuteBuildingBlock();
+
+        String vnfCustomizationUUID = "1234567";
+        String serviceInstanceId = "1234567";
+        BuildingBlock buildingBlock = new BuildingBlock();
+        buildingBlock.setBpmnFlowName("ConfigDeployVnfBB");
+        buildingBlock.setKey(vnfCustomizationUUID);
+        ebb.setBuildingBlock(buildingBlock);
+        WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
+        workflowResourceIds.setServiceInstanceId(serviceInstanceId);
+        ebb.setWorkflowResourceIds(workflowResourceIds);
         flowsToExecute.add(ebb);
+
+        List<VnfResourceCustomization> vnfResourceCustomizations = new ArrayList();
+        VnfResourceCustomization vrc = new VnfResourceCustomization();
+        vrc.setSkipPostInstConf(false);
+        vrc.setModelCustomizationUUID(vnfCustomizationUUID);
+        vnfResourceCustomizations.add(vrc);
+        GenericVnf genericVnf = new GenericVnf();
+        genericVnf.setModelCustomizationId(vnfCustomizationUUID);
+        doReturn(vnfResourceCustomizations).when(catalogDbClient)
+                .getVnfResourceCustomizationByModelUuid(serviceInstanceId);
+        doReturn(vrc).when(catalogDbClient).findVnfResourceCustomizationInList(vnfCustomizationUUID,
+                vnfResourceCustomizations);
+
         flowsToExecute.add(ebb2);
         execution.setVariable("flowsToExecute", flowsToExecute);
         workflowActionBBTasks.selectBB(execution);
index a2ca4a3..1920046 100644 (file)
@@ -191,6 +191,7 @@ public class CatalogDbClient {
     private String findPnfResourceCustomizationByModelUuid = "/findPnfResourceCustomizationByModelUuid";
     private String findWorkflowByArtifactUUID = "/findByArtifactUUID";
     private String findWorkflowByModelUUID = "/findWorkflowByModelUUID";
+    private String findVnfResourceCustomizationByModelUuid = "/findVnfResourceCustomizationByModelUuid";
 
     private String serviceURI;
     private String vfModuleURI;
@@ -333,6 +334,9 @@ public class CatalogDbClient {
         findWorkflowByArtifactUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByArtifactUUID;
         findWorkflowByModelUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByModelUUID;
 
+        findVnfResourceCustomizationByModelUuid =
+                endpoint + VNF_RESOURCE_CUSTOMIZATION + SEARCH + findVnfResourceCustomizationByModelUuid;
+
         serviceURI = endpoint + SERVICE + URI_SEPARATOR;
         vfModuleURI = endpoint + VFMODULE + URI_SEPARATOR;
         vnfResourceURI = endpoint + VNF_RESOURCE + URI_SEPARATOR;
@@ -503,6 +507,12 @@ public class CatalogDbClient {
         }
     }
 
+    public List<VnfResourceCustomization> getVnfResourceCustomizationByModelUuid(String modelUuid) {
+        return this.getMultipleResources(vnfResourceCustomizationClient,
+                getUri(UriBuilder.fromUri(findVnfResourceCustomizationByModelUuid)
+                        .queryParam("SERVICE_MODEL_UUID", modelUuid).build().toString()));
+    }
+
     public PnfResource getPnfResourceByModelUUID(String modelUUID) {
         PnfResource PnfResource = this.getSingleResource(pnfResourceClient, getUri(pnfResourceURI + modelUUID));
         if (PnfResource != null) {
@@ -816,7 +826,7 @@ public class CatalogDbClient {
         return vfModuleCust.getCvnfcCustomization().stream().collect(Collectors.toList());
     }
 
-    private VnfResourceCustomization findVnfResourceCustomizationInList(String vnfCustomizationUUID,
+    public VnfResourceCustomization findVnfResourceCustomizationInList(String vnfCustomizationUUID,
             List<VnfResourceCustomization> vnfResourceCusts) {
         List<VnfResourceCustomization> filtered = vnfResourceCusts.stream()
                 .filter(vnfCustRes -> vnfCustomizationUUID.equals(vnfCustRes.getModelCustomizationUUID()))
index c72fade..c38ffcb 100644 (file)
@@ -40,4 +40,17 @@ public interface VnfCustomizationRepository extends JpaRepository<VnfResourceCus
             @Param("MODEL_INSTANCE_NAME") String modelInstanceName,
             @Param("VNF_RESOURCE_MODEL_UUID") String vnfResourceModelUUID);
 
+    /**
+     * Used to fetch the @{link VnfResourceCustomization} by the Model UUID.
+     *
+     * This operation is required by {@link org.onap.so.db.catalog.client.CatalogDbClient} to provide
+     * VnfResourceCustomization based on model UUID without projection.
+     *
+     * @param serviceModelUuid model UUID
+     * @return List of VnfResourceCustomization
+     */
+    @Query(value = "select * from vnf_resource_customization where SERVICE_MODEL_UUID = ?1", nativeQuery = true)
+    List<VnfResourceCustomization> findVnfResourceCustomizationByModelUuid(
+            @Param("SERVICE_MODEL_UUID") String serviceModelUuid);
+
 }