diff options
Diffstat (limited to 'bpmn')
21 files changed, 936 insertions, 615 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java index d39da5ee37..603e11d458 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java @@ -1250,7 +1250,7 @@ public class BBInputSetup implements JavaDelegate { || requestAction.equalsIgnoreCase("activateFabricConfiguration") || requestAction.equalsIgnoreCase("recreateInstance") || requestAction.equalsIgnoreCase("replaceInstance") - || requestAction.equalsIgnoreCase("upgradeInstance")) { + || requestAction.equalsIgnoreCase("upgradeInstance") || requestAction.equalsIgnoreCase("healthCheck")) { return getGBBMacroExistingService(executeBB, lookupKeyMap, bbName, requestAction, requestDetails.getCloudConfiguration()); } @@ -1564,6 +1564,9 @@ public class BBInputSetup implements JavaDelegate { break; } } + } else if (bbName.equals("HealthCheckBB") + && (VNF).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope())) { + this.setisHelmforHealthCheckBB(service, serviceInstance, gBB); } if (executeBB.getWorkflowResourceIds() != null) { parameter.setResourceId(executeBB.getWorkflowResourceIds().getNetworkCollectionId()); @@ -2112,6 +2115,28 @@ public class BBInputSetup implements JavaDelegate { return collection; } + private void setisHelmforHealthCheckBB(Service service, ServiceInstance serviceInstance, GeneralBuildingBlock gBB) { + for (GenericVnf vnf : serviceInstance.getVnfs()) { + for (VfModule vfModule : vnf.getVfModules()) { + String vnfModelCustomizationUUID = + this.bbInputSetupUtils.getAAIGenericVnf(vnf.getVnfId()).getModelCustomizationId(); + ModelInfo vnfModelInfo = new ModelInfo(); + vnfModelInfo.setModelCustomizationUuid(vnfModelCustomizationUUID); + this.mapCatalogVnf(vnf, vnfModelInfo, service); + String vfModuleCustomizationUUID = this.bbInputSetupUtils + .getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId()).getModelCustomizationId(); + ModelInfo vfModuleModelInfo = new ModelInfo(); + vfModuleModelInfo.setModelCustomizationId(vfModuleCustomizationUUID); + this.mapCatalogVfModule(vfModule, vfModuleModelInfo, service, vnfModelCustomizationUUID); + if (vfModule.getModelInfoVfModule() != null && vfModule.getModelInfoVfModule().getModelName() != null + && vfModule.getModelInfoVfModule().getModelName().contains("helm")) { + gBB.getRequestContext().setIsHelm(true); + break; + } + } + } + } + protected void mapL3Networks(List<AAIResourceUri> list, List<L3Network> l3Networks) { for (AAIResourceUri aaiResourceUri : list) { l3Networks.add(this.mapL3Network(aaiResourceUri)); diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HealthCheckBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HealthCheckBB.bpmn index 8272bd3750..fad2e5506c 100755 --- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HealthCheckBB.bpmn +++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/HealthCheckBB.bpmn @@ -1,30 +1,29 @@ <?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1bvx7yi" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.0.0"> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0gwymqy" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.7.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.14.0"> <bpmn:process id="HealthCheckBB" name="HealthCheckBB" isExecutable="true"> - <bpmn:startEvent id="StartEvent_1" name="HealthCheckBB_start"> - <bpmn:outgoing>Flow_0gd6hy6</bpmn:outgoing> + <bpmn:startEvent id="Event_0rgusxn" name="HealthCheckBB_start"> + <bpmn:outgoing>Flow_0udh4cd</bpmn:outgoing> </bpmn:startEvent> - <bpmn:endEvent id="Event_1dklvvk" name="HealthCheckBB_end"> - <bpmn:incoming>Flow_0xiyno7</bpmn:incoming> + <bpmn:endEvent id="Event_0o1nl3y" name="HealthCheckBB_end"> + <bpmn:incoming>Flow_0n17e0q</bpmn:incoming> + <bpmn:incoming>Flow_131rwms</bpmn:incoming> </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_0gd6hy6" sourceRef="StartEvent_1" targetRef="Activity_11hkwkn" /> - <bpmn:subProcess id="Activity_1pto2qh" name="Error Handling " triggeredByEvent="true"> - <bpmn:startEvent id="Event_0929aqj"> - <bpmn:outgoing>Flow_05rbrsm</bpmn:outgoing> - <bpmn:errorEventDefinition id="ErrorEventDefinition_0k0ly65" /> + <bpmn:subProcess id="Activity_0tw4ak3" name="Error Handling " triggeredByEvent="true"> + <bpmn:startEvent id="Event_1v6jbfd"> + <bpmn:outgoing>Flow_03ogqmx</bpmn:outgoing> + <bpmn:errorEventDefinition id="ErrorEventDefinition_1xw7dq4" /> </bpmn:startEvent> - <bpmn:endEvent id="Event_1s698ql"> - <bpmn:incoming>Flow_05rbrsm</bpmn:incoming> - <bpmn:terminateEventDefinition id="TerminateEventDefinition_0mn6xgi" /> + <bpmn:endEvent id="Event_0wwzune"> + <bpmn:incoming>Flow_03ogqmx</bpmn:incoming> + <bpmn:terminateEventDefinition id="TerminateEventDefinition_0c07ott" /> </bpmn:endEvent> - <bpmn:sequenceFlow id="Flow_05rbrsm" sourceRef="Event_0929aqj" targetRef="Event_1s698ql" /> + <bpmn:sequenceFlow id="Flow_03ogqmx" sourceRef="Event_1v6jbfd" targetRef="Event_0wwzune" /> </bpmn:subProcess> - <bpmn:serviceTask id="Activity_11hkwkn" name="Prepare Cnf Adapter request" camunda:expression="${CnfHealthCheckTasks.prepareCnfAdaperRequest(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> - <bpmn:incoming>Flow_0gd6hy6</bpmn:incoming> - <bpmn:outgoing>Flow_1aqdd5k</bpmn:outgoing> + <bpmn:serviceTask id="Activity_0pnb21p" name="Prepare Cnf Adapter request" camunda:expression="${CnfHealthCheckTasks.prepareCnfAdaperRequest(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> + <bpmn:incoming>Flow_0jxw1lb</bpmn:incoming> + <bpmn:outgoing>Flow_0uoe9ga</bpmn:outgoing> </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_1aqdd5k" sourceRef="Activity_11hkwkn" targetRef="Activity_08mgs1k" /> - <bpmn:callActivity id="Activity_08mgs1k" name="Call CNFAdapterAsyncCall" calledElement="CNFAdapterAsyncCall"> + <bpmn:callActivity id="Activity_07txikn" name="Call CNFAdapterAsyncCall" calledElement="CNFAdapterAsyncCall"> <bpmn:extensionElements> <camunda:in source="apiPath" target="apiPath" /> <camunda:in source="cnfRequestPayload" target="cnfRequestPayload" /> @@ -35,67 +34,100 @@ <camunda:in source="messageType" target="messageType" /> <camunda:in source="true" target="isDebugLogEnabled" /> </bpmn:extensionElements> - <bpmn:incoming>Flow_1aqdd5k</bpmn:incoming> - <bpmn:outgoing>Flow_1jeui7e</bpmn:outgoing> + <bpmn:incoming>Flow_0uoe9ga</bpmn:incoming> + <bpmn:outgoing>Flow_0t6f6l8</bpmn:outgoing> </bpmn:callActivity> - <bpmn:serviceTask id="Activity_0w4hy3d" name="Process Response" camunda:expression="${CnfHealthCheckTasks.processAsyncResponse(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> - <bpmn:incoming>Flow_1jeui7e</bpmn:incoming> - <bpmn:outgoing>Flow_0xiyno7</bpmn:outgoing> + <bpmn:serviceTask id="Activity_1qd7k3z" name="Process Response" camunda:expression="${CnfHealthCheckTasks.processAsyncResponse(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> + <bpmn:incoming>Flow_0t6f6l8</bpmn:incoming> + <bpmn:outgoing>Flow_0n17e0q</bpmn:outgoing> </bpmn:serviceTask> - <bpmn:sequenceFlow id="Flow_0xiyno7" sourceRef="Activity_0w4hy3d" targetRef="Event_1dklvvk" /> - <bpmn:sequenceFlow id="Flow_1jeui7e" sourceRef="Activity_08mgs1k" targetRef="Activity_0w4hy3d" /> + <bpmn:exclusiveGateway id="Gateway_07e5xls" name="Check If Is Helm" default="Flow_131rwms"> + <bpmn:incoming>Flow_0udh4cd</bpmn:incoming> + <bpmn:outgoing>Flow_131rwms</bpmn:outgoing> + <bpmn:outgoing>Flow_0jxw1lb</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="Flow_0udh4cd" sourceRef="Event_0rgusxn" targetRef="Gateway_07e5xls" /> + <bpmn:sequenceFlow id="Flow_0n17e0q" sourceRef="Activity_1qd7k3z" targetRef="Event_0o1nl3y" /> + <bpmn:sequenceFlow id="Flow_131rwms" name="No Helm" sourceRef="Gateway_07e5xls" targetRef="Event_0o1nl3y" /> + <bpmn:sequenceFlow id="Flow_0jxw1lb" name="Yes Helm" sourceRef="Gateway_07e5xls" targetRef="Activity_0pnb21p"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${execution.getVariable("isHelm")}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:sequenceFlow id="Flow_0uoe9ga" sourceRef="Activity_0pnb21p" targetRef="Activity_07txikn" /> + <bpmn:sequenceFlow id="Flow_0t6f6l8" sourceRef="Activity_07txikn" targetRef="Activity_1qd7k3z" /> </bpmn:process> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="HealthCheckBB"> - <bpmndi:BPMNEdge id="Flow_1jeui7e_di" bpmnElement="Flow_1jeui7e"> - <di:waypoint x="600" y="120" /> - <di:waypoint x="680" y="120" /> + <bpmndi:BPMNEdge id="Flow_0udh4cd_di" bpmnElement="Flow_0udh4cd"> + <di:waypoint x="218" y="150" /> + <di:waypoint x="245" y="150" /> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0xiyno7_di" bpmnElement="Flow_0xiyno7"> - <di:waypoint x="780" y="120" /> - <di:waypoint x="842" y="120" /> + <bpmndi:BPMNEdge id="Flow_0n17e0q_di" bpmnElement="Flow_0n17e0q"> + <di:waypoint x="780" y="150" /> + <di:waypoint x="870" y="150" /> + <di:waypoint x="870" y="202" /> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1aqdd5k_di" bpmnElement="Flow_1aqdd5k"> - <di:waypoint x="400" y="120" /> - <di:waypoint x="500" y="120" /> + <bpmndi:BPMNEdge id="Flow_131rwms_di" bpmnElement="Flow_131rwms"> + <di:waypoint x="270" y="175" /> + <di:waypoint x="270" y="220" /> + <di:waypoint x="852" y="220" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="264" y="195" width="43" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0jxw1lb_di" bpmnElement="Flow_0jxw1lb"> + <di:waypoint x="295" y="150" /> + <di:waypoint x="350" y="150" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="299" y="132" width="47" height="14" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0gd6hy6_di" bpmnElement="Flow_0gd6hy6"> - <di:waypoint x="218" y="120" /> - <di:waypoint x="300" y="120" /> + <bpmndi:BPMNEdge id="Flow_0uoe9ga_di" bpmnElement="Flow_0uoe9ga"> + <di:waypoint x="450" y="150" /> + <di:waypoint x="500" y="150" /> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_1dklvvk_di" bpmnElement="Event_1dklvvk"> - <dc:Bounds x="842" y="102" width="36" height="36" /> + <bpmndi:BPMNEdge id="Flow_0t6f6l8_di" bpmnElement="Flow_0t6f6l8"> + <di:waypoint x="600" y="150" /> + <di:waypoint x="680" y="150" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="Event_0rgusxn_di" bpmnElement="Event_0rgusxn"> + <dc:Bounds x="182" y="132" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="820" y="145" width="85" height="27" /> + <dc:Bounds x="156" y="175" width="90" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="182" y="102" width="36" height="36" /> + <bpmndi:BPMNShape id="Event_0o1nl3y_di" bpmnElement="Event_0o1nl3y"> + <dc:Bounds x="852" y="202" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="156" y="145" width="90" height="27" /> + <dc:Bounds x="831" y="245" width="84" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_11hkwkn_di" bpmnElement="Activity_11hkwkn"> - <dc:Bounds x="300" y="80" width="100" height="80" /> + <bpmndi:BPMNShape id="Activity_0pnb21p_di" bpmnElement="Activity_0pnb21p"> + <dc:Bounds x="350" y="110" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_07txikn_di" bpmnElement="Activity_07txikn"> + <dc:Bounds x="500" y="110" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0f7poou_di" bpmnElement="Activity_08mgs1k"> - <dc:Bounds x="500" y="80" width="100" height="80" /> + <bpmndi:BPMNShape id="Activity_1qd7k3z_di" bpmnElement="Activity_1qd7k3z"> + <dc:Bounds x="680" y="110" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0w4hy3d_di" bpmnElement="Activity_0w4hy3d"> - <dc:Bounds x="680" y="80" width="100" height="80" /> + <bpmndi:BPMNShape id="Gateway_07e5xls_di" bpmnElement="Gateway_07e5xls" isMarkerVisible="true"> + <dc:Bounds x="245" y="125" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="230" y="95" width="81" height="14" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1pto2qh_di" bpmnElement="Activity_1pto2qh" isExpanded="true"> - <dc:Bounds x="280" y="250" width="460" height="135" /> + <bpmndi:BPMNShape id="Activity_0tw4ak3_di" bpmnElement="Activity_0tw4ak3" isExpanded="true"> + <dc:Bounds x="280" y="280" width="460" height="135" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_05rbrsm_di" bpmnElement="Flow_05rbrsm"> - <di:waypoint x="398" y="324" /> - <di:waypoint x="632" y="324" /> + <bpmndi:BPMNEdge id="Flow_03ogqmx_di" bpmnElement="Flow_03ogqmx"> + <di:waypoint x="398" y="354" /> + <di:waypoint x="632" y="354" /> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_0929aqj_di" bpmnElement="Event_0929aqj"> - <dc:Bounds x="362" y="306" width="36" height="36" /> + <bpmndi:BPMNShape id="Event_1v6jbfd_di" bpmnElement="Event_1v6jbfd"> + <dc:Bounds x="362" y="336" width="36" height="36" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1s698ql_di" bpmnElement="Event_1s698ql"> - <dc:Bounds x="632" y="306" width="36" height="36" /> + <bpmndi:BPMNShape id="Event_0wwzune_di" bpmnElement="Event_0wwzune"> + <dc:Bounds x="632" y="336" width="36" height="36" /> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy index f17bfc2938..71dd9b1426 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AnNssmfutils.groovy @@ -254,7 +254,7 @@ else{ //TNFH slice profile instance creation TNFH_sliceProfileInstance.setServiceInstanceId(TNFH_sliceProfileInstanceId) - sliceInstanceName = "sliceprofile _ "+TNFH_sliceProfileId + sliceInstanceName = "sliceprofile_"+TNFH_sliceProfileId TNFH_sliceProfileInstance.setServiceInstanceName(sliceInstanceName) serviceType = jsonUtil.getJsonValue(execution.getVariable("tnFhSliceProfile"), "sST") TNFH_sliceProfileInstance.setServiceType(serviceType) @@ -271,7 +271,7 @@ else{ //TNMH slice profile instance creation TNMH_sliceProfileInstance.setServiceInstanceId(TNMH_sliceProfileInstanceId) - sliceInstanceName = "sliceprofile _ "+TNMH_sliceProfileId + sliceInstanceName = "sliceprofile_"+TNMH_sliceProfileId TNMH_sliceProfileInstance.setServiceInstanceName(sliceInstanceName) serviceType = jsonUtil.getJsonValue(execution.getVariable("tnMhSliceProfile"), "sST") TNMH_sliceProfileInstance.setServiceType(serviceType) diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy index 5d243437e0..2aaec9f164 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoActivateAccessNSSI.groovy @@ -141,7 +141,11 @@ class DoActivateAccessNSSI extends AbstractServiceTaskProcessor { execution.setVariable("relatedSPs", getRelatedInstancesByRole(execution, ROLE_SLICE_PROFILE,KEY_SLICE_PROFILE, anSliceProfileId)) Map<String,ServiceInstance> relatedNssis = new HashMap<>() - execution.setVariable("relatedNssis", getRelatedInstancesByRole(execution, ROLE_NSSI,KEY_NSSI, anNssiId)) + relatedNssis = getRelatedInstancesByRole(execution, ROLE_NSSI,KEY_NSSI, anNssiId) + if(relatedNssis.size() == 1) { + execution.setVariable("IsRANNfAlonePresent", true) + } + execution.setVariable("relatedNssis", relatedNssis) logger.trace("${Prefix} - Exit Get Related instances") } diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy index ed1c2b24d5..9800428c68 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy @@ -654,7 +654,8 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor { logger.debug("completed AN service instance build " + ANServiceInstance.toString()) //create RAN NF NSSI ANNFServiceInstance.setServiceInstanceId(execution.getVariable("RANNFServiceInstanceId") as String) - sliceInstanceName = "nssi_"+execution.getVariable("ANNF_modelName") + String ANNF_nssiInstanceId = UUID.randomUUID().toString() + sliceInstanceName = "nssi_an_nf_" + ANNF_nssiInstanceId ANNFServiceInstance.setServiceInstanceName(sliceInstanceName) ANNFServiceInstance.setServiceType(execution.getVariable("sst") as String) ANNFServiceInstance.setOrchestrationStatus(serviceStatus) @@ -663,7 +664,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor { ANNFServiceInstance.setServiceRole(serviceRole) snssaiList = jsonUtil.StringArrayToList(execution.getVariable("snssaiList") as String) snssai = snssaiList.get(0) - ANNFServiceInstance.setEnvironmentContext(snssai) + ANNFServiceInstance.setEnvironmentContext(execution.getVariable("networkType") as String) ANNFServiceInstance.setModelInvariantId(execution.getVariable("ANNF_modelInvariantUuid")) ANNFServiceInstance.setModelVersionId(execution.getVariable("ANNF_modelUuid")) ANNFServiceInstance.setWorkloadContext("AN_NF") @@ -1032,7 +1033,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor { RU_ep.setType(type) RU_ep.setIpAddress("192.168.100.4") RU_ep.setLogicalInterfaceId("1234") - RU_ep.setNextHop("Host1") + RU_ep.setNextHop("networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.1-ltpId-512") RU_ep.setPrefixLength(prefixLength) RU_ep.setAddressFamily(addressFamily) //DU Ingress @@ -1046,7 +1047,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor { DU_ep.setType(type) DU_ep.setIpAddress("192.168.100.5") DU_ep.setLogicalInterfaceId("1234") - DU_ep.setNextHop("Host2") + DU_ep.setNextHop("networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512") DU_ep.setPrefixLength(prefixLength) DU_ep.setAddressFamily(addressFamily) //MH RAN end point update @@ -1062,7 +1063,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor { DUEG_ep.setLogicalInterfaceId("1234") DUEG_ep.setPrefixLength(prefixLength) DUEG_ep.setAddressFamily(addressFamily) - DUEG_ep.setNextHop("Host3") + DUEG_ep.setNextHop("networkId-providerId-10-clientId-0-topologyId-2-nodeId-10.1.1.1-ltpId-512") //CUIN String CUIN_routeId = UUID.randomUUID().toString() execution.setVariable("tranportEp_ID_CUIN", CUIN_routeId) @@ -1073,7 +1074,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor { CUIN_ep.setType(type) CUIN_ep.setIpAddress("192.168.100.6") CUIN_ep.setLogicalInterfaceId("1234") - CUIN_ep.setNextHop("Host4") + CUIN_ep.setNextHop("networkId-providerId-20-clientId-0-topologyId-2-nodeId-10.2.1.2-ltpId-512") CUIN_ep.setPrefixLength(prefixLength) CUIN_ep.setAddressFamily(addressFamily) try { diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy index bc155c5943..a22819f2e9 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy @@ -444,6 +444,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{ .sST(sliceTaskInfo.getSliceProfile().getSST() ?: sliceParams.getServiceProfile().get("sST") as String) .nssiName(sliceTaskInfo.getSuggestNssiId() ? sliceTaskInfo.getNSSTInfo().getName() : allocateAnNssi.getNssiName()) .nssiId(sliceTaskInfo.getSuggestNssiId()) + .resourceSharingLevel(sliceParams.serviceProfile.get("resourceSharingLevel") as String) .build() nbiRequest.setServiceInfo(serviceInfo) @@ -590,6 +591,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{ serviceInfo.nssiId = sliceTaskInfo.suggestNssiId //if shared serviceInfo.sST = sliceTaskInfo.sliceProfile.sST ?: sliceParams.serviceProfile.get("sST") serviceInfo.nssiName = allocateCnNssi.nssiName + serviceInfo.resourceSharingLevel = sliceParams.serviceProfile.get("resourceSharingLevel") nbiRequest.setServiceInfo(serviceInfo) nbiRequest.setEsrInfo(esrInfo) @@ -727,6 +729,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{ serviceInfo.nssiId = sliceTaskInfo.suggestNssiId serviceInfo.sST = sliceTaskInfo.sliceProfile.sST ?: sliceParams.serviceProfile.get("sST") serviceInfo.nssiName = "nssi_tn" + execution.getVariable("sliceServiceInstanceName") + serviceInfo.resourceSharingLevel = sliceParams.serviceProfile.get("resourceSharingLevel") nbiRequest.setServiceInfo(serviceInfo) nbiRequest.setEsrInfo(esrInfo) diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy index 35b4199909..5476cb5afa 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy @@ -117,7 +117,7 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{ String modelUuid = modelInfo.getModelUuid() ss.setModelInvariantId(modelInvariantUuid) ss.setModelVersionId(modelUuid) - String serviceInstanceLocationid = serviceProfile.get("pLMNIdList") + String serviceInstanceLocationid = serviceProfile.get("plmnIdList") ss.setServiceInstanceLocationId(serviceInstanceLocationid) String snssai = serviceProfile.get("sNSSAI") ss.setEnvironmentContext(snssai) diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy index 2588d07e50..7571f07081 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceOption.groovy @@ -21,6 +21,7 @@ package org.onap.so.bpmn.infrastructure.scripts import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.core.type.TypeReference import org.camunda.bpm.engine.delegate.DelegateExecution import org.onap.aai.domain.yang.ServiceInstance import org.onap.so.beans.nsmf.EsrInfo @@ -271,24 +272,22 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{ * @return */ private SubnetType convertServiceCategory(String serviceCategory){ - if("CN NSST".equals(serviceCategory)){ + if(serviceCategory ==~ /CN.*/){ return SubnetType.CN } - if ("AN NF NSST".equals(serviceCategory)){ - return SubnetType.AN_NF - } - if ("AN NSST".equals(serviceCategory)){ + if (serviceCategory ==~ /AN.*/){ return SubnetType.AN } - if ("TN BH NSST".equals(serviceCategory)){ + if (serviceCategory ==~ /TN.*BH.*/){ return SubnetType.TN_BH } - if("TN MH NSST".equals(serviceCategory)){ + if(serviceCategory ==~ /TN.*MH.*/){ return SubnetType.TN_MH } - if("TN FH NSST".equals(serviceCategory)){ + if(serviceCategory ==~ /TN.*FH.*/){ return SubnetType.TN_FH } + return null } @@ -475,7 +474,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{ */ void getNSSISelectionCap4AN(DelegateExecution execution) { - def vendor = execution.getVariable("vendor") as String + SliceTaskParamsAdapter sliceParams = + execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter + + def vendor = sliceParams.anSliceTaskInfo.vendor String strRequest = buildNSSISelectionReq(vendor, NetworkType.ACCESS) @@ -497,7 +499,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{ */ void getNSSISelectionCap4TN(DelegateExecution execution) { - def vendor = execution.getVariable("vendor") as String + SliceTaskParamsAdapter sliceParams = + execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter + + def vendor = sliceParams.tnBHSliceTaskInfo.vendor String strRequest = buildNSSISelectionReq(vendor, NetworkType.TRANSPORT) @@ -518,7 +523,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{ */ void getNSSISelectionCap4CN(DelegateExecution execution) { - def vendor = execution.getVariable("vendor") as String + SliceTaskParamsAdapter sliceParams = + execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter + + def vendor = sliceParams.cnSliceTaskInfo.vendor String strRequest = buildNSSISelectionReq(vendor, NetworkType.CORE) @@ -626,8 +634,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{ Map nssiNeedHandlerInfo = nssiNeedHandlerInfos.get(currNssiIndex) as Map TemplateInfo nsstInfo = nssiNeedHandlerInfo.get("nsstInfo") as TemplateInfo - Map<String, Object> profileInfo = nssiNeedHandlerInfo.get("sliceProfile") as Map - //profileInfo.remove("profileId") + SliceProfileAdapter sliceProfileInfo = nssiNeedHandlerInfo.get("sliceProfile") as SliceProfileAdapter + + Map profileInfo = objectMapper.convertValue(sliceProfileInfo, new TypeReference<Map<String, Object>>() {}); + while (profileInfo.values().remove(null)); String urlString = UrnPropertiesReader.getVariable("mso.oof.endpoint", execution) logger.debug( "get NSI option OOF Url: " + urlString) @@ -641,8 +651,8 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{ String timeout = UrnPropertiesReader.getVariable("mso.adapters.oof.timeout", execution) execution.setVariable("nssiSelection_timeout", timeout) - String oofRequest = oofUtils.buildSelectNSSIRequest(requestId, nsstInfo, messageType, - profileInfo, 600) + String oofRequest = oofUtils.buildSelectNSSIRequest(requestId, messageType, nsstInfo.UUID, + nsstInfo.invariantUUID, nsstInfo.name, profileInfo) execution.setVariable("nssiSelection_oofRequest", oofRequest) logger.debug("Sending request to OOF: " + oofRequest) @@ -672,13 +682,10 @@ class DoCreateSliceServiceOption extends AbstractServiceTaskProcessor{ Map<String, Object> resMap = objectMapper.readValue(OOFResponse, Map.class) List<Map<String, Object>> nsiSolutions = (List<Map<String, Object>>) resMap.get("solutions") - Map<String, Object> solution = nsiSolutions.get(0) - - String resourceSharingLevel = execution.getVariable("resourceSharingLevel") - Boolean isSharable = resourceSharingLevel == "shared" //todo - if (isSharable && solution != null) { - processNssiResult(sliceTaskParams, subnetType, solution) + if(nsiSolutions.size()>=1) { + Map<String,Object> solution = nsiSolutions.get(0) as Map + processNssiResult(sliceTaskParams, subnetType, solution) } execution.setVariable("sliceTaskParams", sliceTaskParams) diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy index 4cc6e6d478..6fd8080ef0 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeAllocateAccessNSSI.groovy @@ -126,7 +126,11 @@ class DoDeAllocateAccessNSSI extends AbstractServiceTaskProcessor { execution.setVariable("anNfSliceProfileId", getInstanceIdByWorkloadContext(execution.getVariable("relatedSPs"), AN_NF)) Map<String,ServiceInstance> relatedNssis = new HashMap<>() - execution.setVariable("relatedNssis", getRelatedInstancesByRole(execution, ROLE_NSSI, anNssiId)) + relatedNssis = getRelatedInstancesByRole(execution, ROLE_NSSI, anNssiId) + if(relatedNssis.size() == 1) { + execution.setVariable("IsRANNfAlonePresent", true) + } + execution.setVariable("relatedNssis", relatedNssis) } diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy index e0c2b776fe..d6e94efea1 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/TnNssmfUtils.groovy @@ -377,7 +377,6 @@ class TnNssmfUtils { logger.debug("mso.workflow.TnNssmf.enableSDNCNetworkConfig is undefined, so use default value (true)") enableSdnc = "true" } - enableSdnc = "false" logger.debug("setEnableSdncConfig: enableSdnc=" + enableSdnc) execution.setVariable("enableSdnc", enableSdnc) diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn index 841a23b3eb..b1561357ae 100644 --- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn +++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoActivateAccessNSSI.bpmn @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0rh5ux5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1"> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0rh5ux5" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0"> <bpmn:process id="DoActivateAccessNSSI" name="DoActivateAccessNSSI" isExecutable="true"> <bpmn:startEvent id="Event_055gbp2" name="Start"> <bpmn:outgoing>Flow_0rh43xe</bpmn:outgoing> @@ -16,7 +16,7 @@ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("shouldChangeAN_NF_SPStatus") == true}</bpmn:conditionExpression> </bpmn:sequenceFlow> <bpmn:intermediateThrowEvent id="Event_1n5z71a" name="Goto TN NSSI Activation"> - <bpmn:incoming>Flow_0mtkhmv</bpmn:incoming> + <bpmn:incoming>Flow_0umba3p</bpmn:incoming> <bpmn:linkEventDefinition id="LinkEventDefinition_0x6han6" name="TNNSSIActivation" /> </bpmn:intermediateThrowEvent> <bpmn:intermediateCatchEvent id="Event_0kkeo9m" name="TN NSSI Activation"> @@ -27,9 +27,9 @@ <bpmn:incoming>Flow_1b6vtso</bpmn:incoming> <bpmn:linkEventDefinition id="LinkEventDefinition_05qiudr" name="AN_NSSI_Activation" /> </bpmn:intermediateThrowEvent> - <bpmn:sequenceFlow id="Flow_0523saw" sourceRef="Gateway_12oq1sa" targetRef="Event_0rzo7gj" /> + <bpmn:sequenceFlow id="Flow_0523saw" sourceRef="Gateway_12oq1sa" targetRef="Gateway_0ci374j" /> <bpmn:intermediateThrowEvent id="Event_0rzo7gj" name="Check TN NSSI Activation"> - <bpmn:incoming>Flow_0523saw</bpmn:incoming> + <bpmn:incoming>Flow_1vyktdh</bpmn:incoming> <bpmn:linkEventDefinition id="LinkEventDefinition_0s7s95j" name="TNNSSIActivation" /> </bpmn:intermediateThrowEvent> <bpmn:sequenceFlow id="Flow_1cnfilb" sourceRef="Event_1azfo77" targetRef="Activity_1j0xkqc" /> @@ -260,7 +260,7 @@ ex.processJavaException(execution)</bpmn:script> def activator = new DoActivateAccessNSSI() activator.updateAnNfStatus(execution)</bpmn:script> </bpmn:scriptTask> - <bpmn:sequenceFlow id="Flow_0mtkhmv" sourceRef="Activity_08yj5gq" targetRef="Event_1n5z71a" /> + <bpmn:sequenceFlow id="Flow_0mtkhmv" sourceRef="Activity_08yj5gq" targetRef="Gateway_0n3zhxo" /> <bpmn:scriptTask id="Activity_1fzg56b" name="Check TN FH Slice profile status" scriptFormat="groovy"> <bpmn:incoming>Flow_1q7frye</bpmn:incoming> <bpmn:outgoing>Flow_1yd57bl</bpmn:outgoing> @@ -519,494 +519,573 @@ activator.prepareUpdateJobStatus(execution,"finished","100","AN NSSI activation <bpmn:incoming>Flow_0g9k299</bpmn:incoming> <bpmn:linkEventDefinition id="LinkEventDefinition_1h9r8pc" name="AN_NSSI_Activation" /> </bpmn:intermediateThrowEvent> + <bpmn:exclusiveGateway id="Gateway_0ci374j" name="Is TN NSSI present?" default="Flow_1vyktdh"> + <bpmn:incoming>Flow_0523saw</bpmn:incoming> + <bpmn:outgoing>Flow_1vyktdh</bpmn:outgoing> + <bpmn:outgoing>Flow_1buy9ji</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="Flow_1vyktdh" name="Yes" sourceRef="Gateway_0ci374j" targetRef="Event_0rzo7gj" /> + <bpmn:intermediateThrowEvent id="Event_04dd3u6" name="Goto AN NSSI Activation"> + <bpmn:incoming>Flow_1buy9ji</bpmn:incoming> + <bpmn:linkEventDefinition id="LinkEventDefinition_1x4z9d9" name="AN_NSSI_Activation" /> + </bpmn:intermediateThrowEvent> + <bpmn:sequenceFlow id="Flow_1buy9ji" name="No" sourceRef="Gateway_0ci374j" targetRef="Event_04dd3u6"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:exclusiveGateway id="Gateway_0n3zhxo" name="Is TN present?" default="Flow_0umba3p"> + <bpmn:incoming>Flow_0mtkhmv</bpmn:incoming> + <bpmn:outgoing>Flow_0umba3p</bpmn:outgoing> + <bpmn:outgoing>Flow_1xrbneh</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="Flow_0umba3p" name="Yes" sourceRef="Gateway_0n3zhxo" targetRef="Event_1n5z71a" /> + <bpmn:intermediateThrowEvent id="Event_1akyxj9" name="Goto AN NSSI Activation"> + <bpmn:incoming>Flow_1xrbneh</bpmn:incoming> + <bpmn:linkEventDefinition id="LinkEventDefinition_1inqa6n" name="AN_NSSI_Activation" /> + </bpmn:intermediateThrowEvent> + <bpmn:sequenceFlow id="Flow_1xrbneh" name="No" sourceRef="Gateway_0n3zhxo" targetRef="Event_1akyxj9"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression> + </bpmn:sequenceFlow> </bpmn:process> <bpmn:error id="Error_1beg2za" name="ActivationWorkflowError" errorCode="2500" /> <bpmn:error id="Error_0vgjqok" /> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoActivateAccessNSSI"> <bpmndi:BPMNEdge id="Flow_1876ml0_di" bpmnElement="Flow_1876ml0"> - <di:waypoint x="660" y="940" /> - <di:waypoint x="712" y="940" /> + <di:waypoint x="660" y="1050" /> + <di:waypoint x="712" y="1050" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0cblklk_di" bpmnElement="Flow_0cblklk"> - <di:waypoint x="350" y="940" /> - <di:waypoint x="390" y="940" /> + <di:waypoint x="350" y="1050" /> + <di:waypoint x="390" y="1050" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_06nfip0_di" bpmnElement="Flow_06nfip0"> - <di:waypoint x="490" y="940" /> - <di:waypoint x="560" y="940" /> + <di:waypoint x="490" y="1050" /> + <di:waypoint x="560" y="1050" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0k5cyz7_di" bpmnElement="Flow_0k5cyz7"> - <di:waypoint x="1330" y="690" /> - <di:waypoint x="1410" y="690" /> + <di:waypoint x="1330" y="800" /> + <di:waypoint x="1410" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1b95clk_di" bpmnElement="Flow_1b95clk"> - <di:waypoint x="1320" y="450" /> - <di:waypoint x="1410" y="450" /> + <di:waypoint x="1320" y="560" /> + <di:waypoint x="1410" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1b6vtso_di" bpmnElement="Flow_1b6vtso"> - <di:waypoint x="1680" y="690" /> - <di:waypoint x="1742" y="690" /> + <di:waypoint x="1680" y="800" /> + <di:waypoint x="1742" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1s0xcf5_di" bpmnElement="Flow_1s0xcf5"> - <di:waypoint x="580" y="690" /> - <di:waypoint x="640" y="690" /> + <di:waypoint x="580" y="800" /> + <di:waypoint x="640" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1wx5w6i_di" bpmnElement="Flow_1wx5w6i"> - <di:waypoint x="1510" y="690" /> - <di:waypoint x="1580" y="690" /> + <di:waypoint x="1510" y="800" /> + <di:waypoint x="1580" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0rzuxa0_di" bpmnElement="Flow_0rzuxa0"> - <di:waypoint x="1140" y="715" /> - <di:waypoint x="1140" y="762" /> + <di:waypoint x="1140" y="825" /> + <di:waypoint x="1140" y="872" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1i4cc7e_di" bpmnElement="Flow_1i4cc7e"> - <di:waypoint x="1165" y="690" /> - <di:waypoint x="1230" y="690" /> + <di:waypoint x="1165" y="800" /> + <di:waypoint x="1230" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1168" y="672" width="18" height="14" /> + <dc:Bounds x="1168" y="782" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0to1idt_di" bpmnElement="Flow_0to1idt"> - <di:waypoint x="1070" y="690" /> - <di:waypoint x="1115" y="690" /> + <di:waypoint x="1070" y="800" /> + <di:waypoint x="1115" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0b7aq1k_di" bpmnElement="Flow_0b7aq1k"> - <di:waypoint x="900" y="690" /> - <di:waypoint x="970" y="690" /> + <di:waypoint x="900" y="800" /> + <di:waypoint x="970" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0sqsq1x_di" bpmnElement="Flow_0sqsq1x"> - <di:waypoint x="740" y="690" /> - <di:waypoint x="800" y="690" /> + <di:waypoint x="740" y="800" /> + <di:waypoint x="800" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1qszzfv_di" bpmnElement="Flow_1qszzfv"> - <di:waypoint x="1680" y="450" /> - <di:waypoint x="1732" y="450" /> + <di:waypoint x="1680" y="560" /> + <di:waypoint x="1732" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1ldkgyg_di" bpmnElement="Flow_1ldkgyg"> - <di:waypoint x="1510" y="450" /> - <di:waypoint x="1580" y="450" /> + <di:waypoint x="1510" y="560" /> + <di:waypoint x="1580" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0ajre96_di" bpmnElement="Flow_0ajre96"> - <di:waypoint x="1130" y="475" /> - <di:waypoint x="1130" y="522" /> + <di:waypoint x="1130" y="585" /> + <di:waypoint x="1130" y="632" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0bukcmf_di" bpmnElement="Flow_0bukcmf"> - <di:waypoint x="1155" y="450" /> - <di:waypoint x="1220" y="450" /> + <di:waypoint x="1155" y="560" /> + <di:waypoint x="1220" y="560" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1158" y="432" width="18" height="14" /> + <dc:Bounds x="1158" y="542" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0heuc95_di" bpmnElement="Flow_0heuc95"> - <di:waypoint x="580" y="450" /> - <di:waypoint x="630" y="450" /> + <di:waypoint x="580" y="560" /> + <di:waypoint x="630" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1i0s8nu_di" bpmnElement="Flow_1i0s8nu"> - <di:waypoint x="1060" y="450" /> - <di:waypoint x="1105" y="450" /> + <di:waypoint x="1060" y="560" /> + <di:waypoint x="1105" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_16pqv7g_di" bpmnElement="Flow_16pqv7g"> - <di:waypoint x="890" y="450" /> - <di:waypoint x="960" y="450" /> + <di:waypoint x="890" y="560" /> + <di:waypoint x="960" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1w3h345_di" bpmnElement="Flow_1w3h345"> - <di:waypoint x="730" y="450" /> - <di:waypoint x="790" y="450" /> + <di:waypoint x="730" y="560" /> + <di:waypoint x="790" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0mtkhmv_di" bpmnElement="Flow_0mtkhmv"> - <di:waypoint x="2110" y="230" /> - <di:waypoint x="2152" y="230" /> + <di:waypoint x="2110" y="340" /> + <di:waypoint x="2180" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1sroz8o_di" bpmnElement="Flow_1sroz8o"> - <di:waypoint x="1800" y="230" /> - <di:waypoint x="1870" y="230" /> + <di:waypoint x="1800" y="340" /> + <di:waypoint x="1870" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1myzbqw_di" bpmnElement="Flow_1myzbqw"> - <di:waypoint x="1500" y="230" /> - <di:waypoint x="1565" y="230" /> + <di:waypoint x="1500" y="340" /> + <di:waypoint x="1565" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0o7xomf_di" bpmnElement="Flow_0o7xomf"> - <di:waypoint x="1340" y="230" /> - <di:waypoint x="1400" y="230" /> + <di:waypoint x="1340" y="340" /> + <di:waypoint x="1400" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0rizzsm_di" bpmnElement="Flow_0rizzsm"> - <di:waypoint x="1970" y="230" /> - <di:waypoint x="2010" y="230" /> + <di:waypoint x="1970" y="340" /> + <di:waypoint x="2010" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1v4zg98_di" bpmnElement="Flow_1v4zg98"> - <di:waypoint x="1590" y="255" /> - <di:waypoint x="1590" y="302" /> + <di:waypoint x="1590" y="365" /> + <di:waypoint x="1590" y="412" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1yrel0t_di" bpmnElement="Flow_1yrel0t"> - <di:waypoint x="1615" y="230" /> - <di:waypoint x="1700" y="230" /> + <di:waypoint x="1615" y="340" /> + <di:waypoint x="1700" y="340" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1649" y="212" width="18" height="14" /> + <dc:Bounds x="1649" y="322" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1gxv9id_di" bpmnElement="Flow_1gxv9id"> - <di:waypoint x="1180" y="230" /> - <di:waypoint x="1240" y="230" /> + <di:waypoint x="1180" y="340" /> + <di:waypoint x="1240" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_147tw7h_di" bpmnElement="Flow_147tw7h"> - <di:waypoint x="435" y="690" /> - <di:waypoint x="480" y="690" /> + <di:waypoint x="435" y="800" /> + <di:waypoint x="480" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0wvzz2r_di" bpmnElement="Flow_0wvzz2r"> - <di:waypoint x="198" y="690" /> - <di:waypoint x="240" y="690" /> + <di:waypoint x="198" y="800" /> + <di:waypoint x="240" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_00clpwn_di" bpmnElement="Flow_00clpwn"> - <di:waypoint x="410" y="715" /> - <di:waypoint x="410" y="800" /> - <di:waypoint x="482" y="800" /> + <di:waypoint x="410" y="825" /> + <di:waypoint x="410" y="910" /> + <di:waypoint x="482" y="910" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0q02qno_di" bpmnElement="Flow_0q02qno"> - <di:waypoint x="340" y="690" /> - <di:waypoint x="385" y="690" /> + <di:waypoint x="340" y="800" /> + <di:waypoint x="385" y="800" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_10b15um_di" bpmnElement="Flow_10b15um"> - <di:waypoint x="410" y="475" /> - <di:waypoint x="410" y="560" /> - <di:waypoint x="482" y="560" /> + <di:waypoint x="410" y="585" /> + <di:waypoint x="410" y="670" /> + <di:waypoint x="482" y="670" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0zjaac9_di" bpmnElement="Flow_0zjaac9"> - <di:waypoint x="435" y="450" /> - <di:waypoint x="480" y="450" /> + <di:waypoint x="435" y="560" /> + <di:waypoint x="480" y="560" /> <bpmndi:BPMNLabel> - <dc:Bounds x="449" y="432" width="18" height="14" /> + <dc:Bounds x="449" y="542" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1q7frye_di" bpmnElement="Flow_1q7frye"> - <di:waypoint x="198" y="450" /> - <di:waypoint x="240" y="450" /> + <di:waypoint x="198" y="560" /> + <di:waypoint x="240" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1yd57bl_di" bpmnElement="Flow_1yd57bl"> - <di:waypoint x="340" y="450" /> - <di:waypoint x="385" y="450" /> + <di:waypoint x="340" y="560" /> + <di:waypoint x="385" y="560" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0g9k299_di" bpmnElement="Flow_0g9k299"> - <di:waypoint x="690" y="205" /> - <di:waypoint x="690" y="100" /> - <di:waypoint x="752" y="100" /> + <di:waypoint x="690" y="315" /> + <di:waypoint x="690" y="210" /> + <di:waypoint x="752" y="210" /> <bpmndi:BPMNLabel> - <dc:Bounds x="698" y="150" width="15" height="14" /> + <dc:Bounds x="698" y="260" width="15" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_00vt4gf_di" bpmnElement="Flow_00vt4gf"> - <di:waypoint x="715" y="230" /> - <di:waypoint x="800" y="230" /> + <di:waypoint x="715" y="340" /> + <di:waypoint x="800" y="340" /> <bpmndi:BPMNLabel> - <dc:Bounds x="749" y="212" width="18" height="14" /> + <dc:Bounds x="749" y="322" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0uxerfg_di" bpmnElement="Flow_0uxerfg"> - <di:waypoint x="620" y="230" /> - <di:waypoint x="665" y="230" /> + <di:waypoint x="620" y="340" /> + <di:waypoint x="665" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_10f44ab_di" bpmnElement="Flow_10f44ab"> - <di:waypoint x="480" y="230" /> - <di:waypoint x="520" y="230" /> + <di:waypoint x="480" y="340" /> + <di:waypoint x="520" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1cnfilb_di" bpmnElement="Flow_1cnfilb"> - <di:waypoint x="198" y="940" /> - <di:waypoint x="250" y="940" /> + <di:waypoint x="198" y="1050" /> + <di:waypoint x="250" y="1050" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0523saw_di" bpmnElement="Flow_0523saw"> - <di:waypoint x="990" y="205" /> - <di:waypoint x="990" y="130" /> - <di:waypoint x="1062" y="130" /> + <di:waypoint x="990" y="315" /> + <di:waypoint x="990" y="190" /> + <di:waypoint x="1065" y="190" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_00fb28f_di" bpmnElement="Flow_00fb28f"> - <di:waypoint x="1015" y="230" /> - <di:waypoint x="1080" y="230" /> + <di:waypoint x="1015" y="340" /> + <di:waypoint x="1080" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_00yl2jk_di" bpmnElement="Flow_00yl2jk"> - <di:waypoint x="900" y="230" /> - <di:waypoint x="965" y="230" /> + <di:waypoint x="900" y="340" /> + <di:waypoint x="965" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_14z4acw_di" bpmnElement="Flow_14z4acw"> - <di:waypoint x="340" y="230" /> - <di:waypoint x="380" y="230" /> + <di:waypoint x="340" y="340" /> + <di:waypoint x="380" y="340" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0rh43xe_di" bpmnElement="Flow_0rh43xe"> - <di:waypoint x="198" y="230" /> - <di:waypoint x="240" y="230" /> + <di:waypoint x="198" y="340" /> + <di:waypoint x="240" y="340" /> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_055gbp2_di" bpmnElement="Event_055gbp2"> - <dc:Bounds x="162" y="212" width="36" height="36" /> + <bpmndi:BPMNEdge id="Flow_1vyktdh_di" bpmnElement="Flow_1vyktdh"> + <di:waypoint x="1115" y="190" /> + <di:waypoint x="1222" y="190" /> <bpmndi:BPMNLabel> - <dc:Bounds x="168" y="255" width="24" height="14" /> + <dc:Bounds x="1160" y="172" width="18" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_12oq1sa_di" bpmnElement="Gateway_12oq1sa" isMarkerVisible="true"> - <dc:Bounds x="965" y="205" width="50" height="50" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1buy9ji_di" bpmnElement="Flow_1buy9ji"> + <di:waypoint x="1090" y="165" /> + <di:waypoint x="1090" y="100" /> + <di:waypoint x="1222" y="100" /> <bpmndi:BPMNLabel> - <dc:Bounds x="945" y="265" width="90" height="27" /> + <dc:Bounds x="1098" y="130" width="15" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1v7p5kl_di" bpmnElement="Event_1n5z71a"> - <dc:Bounds x="2152" y="212" width="36" height="36" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0umba3p_di" bpmnElement="Flow_0umba3p"> + <di:waypoint x="2230" y="340" /> + <di:waypoint x="2297" y="340" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2255" y="322" width="18" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1xrbneh_di" bpmnElement="Flow_1xrbneh"> + <di:waypoint x="2205" y="365" /> + <di:waypoint x="2205" y="412" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2137" y="255" width="71" height="27" /> + <dc:Bounds x="2213" y="386" width="15" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="Event_055gbp2_di" bpmnElement="Event_055gbp2"> + <dc:Bounds x="162" y="322" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="168" y="365" width="25" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_01vyapf_di" bpmnElement="Event_0kkeo9m"> - <dc:Bounds x="162" y="432" width="36" height="36" /> + <bpmndi:BPMNShape id="Gateway_12oq1sa_di" bpmnElement="Gateway_12oq1sa" isMarkerVisible="true"> + <dc:Bounds x="965" y="315" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="157" y="475" width="48" height="27" /> + <dc:Bounds x="945" y="375" width="90" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1u3s42m_di" bpmnElement="Event_09ey569"> - <dc:Bounds x="1742" y="672" width="36" height="36" /> + <bpmndi:BPMNShape id="Event_01vyapf_di" bpmnElement="Event_0kkeo9m"> + <dc:Bounds x="162" y="542" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1728" y="715" width="71" height="27" /> + <dc:Bounds x="158" y="585" width="47" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_01fudey_di" bpmnElement="Event_0rzo7gj"> - <dc:Bounds x="1062" y="112" width="36" height="36" /> + <bpmndi:BPMNShape id="Event_1u3s42m_di" bpmnElement="Event_09ey569"> + <dc:Bounds x="1742" y="782" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1042" y="155" width="78" height="27" /> + <dc:Bounds x="1728" y="825" width="71" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_0gx3ps0_di" bpmnElement="Event_0gx3ps0"> - <dc:Bounds x="712" y="922" width="36" height="36" /> + <dc:Bounds x="712" y="1032" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="720" y="965" width="20" height="14" /> + <dc:Bounds x="720" y="1075" width="20" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Gateway_0xcg677_di" bpmnElement="Gateway_0xcg677" isMarkerVisible="true"> - <dc:Bounds x="665" y="205" width="50" height="50" /> + <dc:Bounds x="665" y="315" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="647" y="262" width="86" height="27" /> + <dc:Bounds x="647" y="372" width="87" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Gateway_0nr3me0_di" bpmnElement="Gateway_0nr3me0" isMarkerVisible="true"> - <dc:Bounds x="385" y="425" width="50" height="50" /> + <dc:Bounds x="385" y="535" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="370" y="395" width="84" height="27" /> + <dc:Bounds x="370" y="505" width="84" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_0j998yp_di" bpmnElement="Event_0j998yp"> - <dc:Bounds x="162" y="672" width="36" height="36" /> + <dc:Bounds x="162" y="782" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="150" y="715" width="64" height="27" /> + <dc:Bounds x="151" y="825" width="63" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_05lm9ln_di" bpmnElement="Event_1nqpg0o"> - <dc:Bounds x="482" y="542" width="36" height="36" /> + <dc:Bounds x="482" y="652" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="457" y="585" width="86" height="27" /> + <dc:Bounds x="457" y="695" width="86" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_0wv22e3_di" bpmnElement="Event_0ki3ncn"> - <dc:Bounds x="1732" y="432" width="36" height="36" /> + <dc:Bounds x="1732" y="542" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1706" y="475" width="88" height="27" /> + <dc:Bounds x="1706" y="585" width="88" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_1djcl9x_di" bpmnElement="Event_1djcl9x"> - <dc:Bounds x="482" y="782" width="36" height="36" /> + <dc:Bounds x="482" y="892" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="469" y="825" width="62" height="27" /> + <dc:Bounds x="469" y="935" width="62" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Gateway_0cemhjv_di" bpmnElement="Gateway_0cemhjv" isMarkerVisible="true"> - <dc:Bounds x="385" y="665" width="50" height="50" /> + <dc:Bounds x="385" y="775" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="368" y="635" width="84" height="27" /> + <dc:Bounds x="368" y="745" width="84" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_00e6sqq_di" bpmnElement="Activity_089t9fj"> - <dc:Bounds x="380" y="190" width="100" height="80" /> + <dc:Bounds x="380" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_147vycg_di" bpmnElement="Activity_1fv6ljk"> - <dc:Bounds x="240" y="190" width="100" height="80" /> + <dc:Bounds x="240" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1465ih9_di" bpmnElement="Activity_19myg2v"> - <dc:Bounds x="520" y="190" width="100" height="80" /> + <dc:Bounds x="520" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_16l1ykw_di" bpmnElement="Activity_1atych2"> - <dc:Bounds x="800" y="190" width="100" height="80" /> + <dc:Bounds x="800" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_10uophi_di" bpmnElement="Activity_0iluozh"> - <dc:Bounds x="1080" y="190" width="100" height="80" /> + <dc:Bounds x="1080" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0u2aqld_di" bpmnElement="Activity_0u2aqld"> - <dc:Bounds x="1240" y="190" width="100" height="80" /> + <dc:Bounds x="1240" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1hr68mt_di" bpmnElement="Activity_1hr68mt"> - <dc:Bounds x="1400" y="190" width="100" height="80" /> + <dc:Bounds x="1400" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Gateway_1xwu5f0_di" bpmnElement="Gateway_1xwu5f0" isMarkerVisible="true"> - <dc:Bounds x="1565" y="205" width="50" height="50" /> + <dc:Bounds x="1565" y="315" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1564" y="175" width="54" height="27" /> + <dc:Bounds x="1564" y="285" width="54" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_0yfi3mj_di" bpmnElement="Event_0yfi3mj"> - <dc:Bounds x="1572" y="302" width="36" height="36" /> + <dc:Bounds x="1572" y="412" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1607" y="286" width="85" height="27" /> + <dc:Bounds x="1608" y="396" width="84" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_03sbng2_di" bpmnElement="Activity_03sbng2"> - <dc:Bounds x="1870" y="190" width="100" height="80" /> + <dc:Bounds x="1870" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_08yj5gq_di" bpmnElement="Activity_08yj5gq"> - <dc:Bounds x="2010" y="190" width="100" height="80" /> + <dc:Bounds x="2010" y="300" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1aesimf_di" bpmnElement="Activity_1aesimf" isExpanded="true"> - <dc:Bounds x="210" y="1130" width="770" height="170" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_1bqk5yt_di" bpmnElement="Flow_1bqk5yt"> - <di:waypoint x="630" y="1234" /> - <di:waypoint x="710" y="1234" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0tw7xsp_di" bpmnElement="Flow_0tw7xsp"> - <di:waypoint x="278" y="1234" /> - <di:waypoint x="380" y="1234" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_075rb1i_di" bpmnElement="Flow_075rb1i"> - <di:waypoint x="480" y="1234" /> - <di:waypoint x="530" y="1234" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0y0r82m_di" bpmnElement="Flow_0y0r82m"> - <di:waypoint x="810" y="1234" /> - <di:waypoint x="892" y="1234" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_156ogc4_di" bpmnElement="Event_156ogc4"> - <dc:Bounds x="242" y="1216" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1n2qjvx_di" bpmnElement="Event_1n2qjvx"> - <dc:Bounds x="892" y="1216" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1eedm9e_di" bpmnElement="Activity_1eedm9e"> - <dc:Bounds x="710" y="1194" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1szd5yp_di" bpmnElement="Activity_1szd5yp"> - <dc:Bounds x="530" y="1194" width="100" height="80" /> + <bpmndi:BPMNShape id="Event_01fudey_di" bpmnElement="Event_0rzo7gj"> + <dc:Bounds x="1222" y="172" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1202" y="215" width="78" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0lpw3j7_di" bpmnElement="Activity_0lpw3j7"> - <dc:Bounds x="380" y="1194" width="100" height="80" /> + <bpmndi:BPMNShape id="Gateway_0ci374j_di" bpmnElement="Gateway_0ci374j" isMarkerVisible="true"> + <dc:Bounds x="1065" y="165" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1063" y="222" width="56" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0hioign_di" bpmnElement="Activity_0hioign" isExpanded="true"> - <dc:Bounds x="320" y="1420" width="440" height="140" /> + <bpmndi:BPMNShape id="Event_04dd3u6_di" bpmnElement="Event_04dd3u6"> + <dc:Bounds x="1222" y="82" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1206" y="125" width="71" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_0cvs8zk_di" bpmnElement="Flow_0cvs8zk"> - <di:waypoint x="408" y="1481" /> - <di:waypoint x="473" y="1481" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_01jdnrt_di" bpmnElement="Flow_01jdnrt"> - <di:waypoint x="573" y="1481" /> - <di:waypoint x="672" y="1481" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Activity_1f3cipf_di" bpmnElement="Activity_1f3cipf"> - <dc:Bounds x="473" y="1441" width="100" height="80" /> + <bpmndi:BPMNShape id="Event_1v7p5kl_di" bpmnElement="Event_1n5z71a"> + <dc:Bounds x="2297" y="322" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2282" y="365" width="71" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_18qzt1n_di" bpmnElement="Event_18qzt1n"> - <dc:Bounds x="672" y="1463" width="36" height="36" /> + <bpmndi:BPMNShape id="Gateway_0n3zhxo_di" bpmnElement="Gateway_0n3zhxo" isMarkerVisible="true"> + <dc:Bounds x="2180" y="315" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2169" y="285" width="73" height="14" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0lvvn7i_di" bpmnElement="Event_0lvvn7i"> - <dc:Bounds x="372" y="1463" width="36" height="36" /> + <bpmndi:BPMNShape id="Event_1akyxj9_di" bpmnElement="Event_1akyxj9"> + <dc:Bounds x="2187" y="412" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2171" y="455" width="71" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1u5yry2_di" bpmnElement="Activity_09e5oh6"> - <dc:Bounds x="1700" y="190" width="100" height="80" /> + <dc:Bounds x="1700" y="300" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1ng1vyl_di" bpmnElement="Activity_1fzg56b"> - <dc:Bounds x="240" y="410" width="100" height="80" /> + <dc:Bounds x="240" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1vabe3f_di" bpmnElement="Activity_0gtw2p7"> - <dc:Bounds x="480" y="410" width="100" height="80" /> + <dc:Bounds x="480" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_07cr1m2_di" bpmnElement="Activity_07cr1m2"> - <dc:Bounds x="630" y="410" width="100" height="80" /> + <dc:Bounds x="630" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_03hbxfi_di" bpmnElement="Activity_03hbxfi"> - <dc:Bounds x="790" y="410" width="100" height="80" /> + <dc:Bounds x="790" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0br2i5b_di" bpmnElement="Activity_0br2i5b"> - <dc:Bounds x="960" y="410" width="100" height="80" /> + <dc:Bounds x="960" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Gateway_1ot96tc_di" bpmnElement="Gateway_1ot96tc" isMarkerVisible="true"> - <dc:Bounds x="1105" y="425" width="50" height="50" /> + <dc:Bounds x="1105" y="535" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1088" y="395" width="84" height="14" /> + <dc:Bounds x="1088" y="505" width="84" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_0h9nwqd_di" bpmnElement="Event_0uco28x"> - <dc:Bounds x="1112" y="522" width="36" height="36" /> + <dc:Bounds x="1112" y="632" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1088" y="565" width="85" height="27" /> + <dc:Bounds x="1089" y="675" width="84" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1t28p4r_di" bpmnElement="Activity_1t28p4r"> - <dc:Bounds x="1580" y="410" width="100" height="80" /> + <dc:Bounds x="1580" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_03o12kw_di" bpmnElement="Activity_1o0a55b"> - <dc:Bounds x="1410" y="410" width="100" height="80" /> + <dc:Bounds x="1410" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1hkx6j5_di" bpmnElement="Activity_068a0cy"> - <dc:Bounds x="240" y="650" width="100" height="80" /> + <dc:Bounds x="240" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_18xtkyi_di" bpmnElement="Event_1azfo77"> - <dc:Bounds x="162" y="922" width="36" height="36" /> + <dc:Bounds x="162" y="1032" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="156" y="965" width="48" height="27" /> + <dc:Bounds x="157" y="1075" width="47" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1wvru6z_di" bpmnElement="Activity_02vl5kt"> - <dc:Bounds x="480" y="650" width="100" height="80" /> + <dc:Bounds x="480" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1kszh5k_di" bpmnElement="Activity_1kszh5k"> - <dc:Bounds x="640" y="650" width="100" height="80" /> + <dc:Bounds x="640" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_09jt4b0_di" bpmnElement="Activity_09jt4b0"> - <dc:Bounds x="800" y="650" width="100" height="80" /> + <dc:Bounds x="800" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1su25xm_di" bpmnElement="Activity_1su25xm"> - <dc:Bounds x="970" y="650" width="100" height="80" /> + <dc:Bounds x="970" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Gateway_114io6q_di" bpmnElement="Gateway_114io6q" isMarkerVisible="true"> - <dc:Bounds x="1115" y="665" width="50" height="50" /> + <dc:Bounds x="1115" y="775" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1098" y="641" width="84" height="14" /> + <dc:Bounds x="1098" y="751" width="84" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_08ecfyj_di" bpmnElement="Event_08ecfyj"> - <dc:Bounds x="1122" y="762" width="36" height="36" /> + <dc:Bounds x="1122" y="872" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1098" y="805" width="85" height="27" /> + <dc:Bounds x="1099" y="915" width="84" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0ftm8b6_di" bpmnElement="Activity_0ftm8b6"> - <dc:Bounds x="1410" y="650" width="100" height="80" /> + <dc:Bounds x="1410" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1xnstqr_di" bpmnElement="Activity_1xnstqr"> - <dc:Bounds x="1580" y="650" width="100" height="80" /> + <dc:Bounds x="1580" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_15f8u0i_di" bpmnElement="Activity_1xirwg3"> - <dc:Bounds x="1220" y="410" width="100" height="80" /> + <dc:Bounds x="1220" y="520" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0xmezab_di" bpmnElement="Activity_0xmezab"> - <dc:Bounds x="1230" y="650" width="100" height="80" /> + <dc:Bounds x="1230" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_17abdcy_di" bpmnElement="Activity_1j0xkqc"> - <dc:Bounds x="250" y="900" width="100" height="80" /> + <dc:Bounds x="250" y="1010" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0huy5ph_di" bpmnElement="Activity_0huy5ph"> - <dc:Bounds x="390" y="900" width="100" height="80" /> + <dc:Bounds x="390" y="1010" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1tbardv_di" bpmnElement="Activity_1tbardv"> - <dc:Bounds x="560" y="900" width="100" height="80" /> + <dc:Bounds x="560" y="1010" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_0kp0sqc_di" bpmnElement="Event_0ocuo1o"> - <dc:Bounds x="752" y="82" width="36" height="36" /> + <dc:Bounds x="752" y="192" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="735" y="125" width="71" height="27" /> + <dc:Bounds x="735" y="235" width="71" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_1aesimf_di" bpmnElement="Activity_1aesimf" isExpanded="true"> + <dc:Bounds x="210" y="1240" width="770" height="170" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="Flow_1bqk5yt_di" bpmnElement="Flow_1bqk5yt"> + <di:waypoint x="630" y="1344" /> + <di:waypoint x="710" y="1344" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0tw7xsp_di" bpmnElement="Flow_0tw7xsp"> + <di:waypoint x="278" y="1344" /> + <di:waypoint x="380" y="1344" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_075rb1i_di" bpmnElement="Flow_075rb1i"> + <di:waypoint x="480" y="1344" /> + <di:waypoint x="530" y="1344" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0y0r82m_di" bpmnElement="Flow_0y0r82m"> + <di:waypoint x="810" y="1344" /> + <di:waypoint x="892" y="1344" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="Event_156ogc4_di" bpmnElement="Event_156ogc4"> + <dc:Bounds x="242" y="1326" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Event_1n2qjvx_di" bpmnElement="Event_1n2qjvx"> + <dc:Bounds x="892" y="1326" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_1eedm9e_di" bpmnElement="Activity_1eedm9e"> + <dc:Bounds x="710" y="1304" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_1szd5yp_di" bpmnElement="Activity_1szd5yp"> + <dc:Bounds x="530" y="1304" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0lpw3j7_di" bpmnElement="Activity_0lpw3j7"> + <dc:Bounds x="380" y="1304" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0hioign_di" bpmnElement="Activity_0hioign" isExpanded="true"> + <dc:Bounds x="320" y="1530" width="440" height="140" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="Flow_0cvs8zk_di" bpmnElement="Flow_0cvs8zk"> + <di:waypoint x="408" y="1591" /> + <di:waypoint x="473" y="1591" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_01jdnrt_di" bpmnElement="Flow_01jdnrt"> + <di:waypoint x="573" y="1591" /> + <di:waypoint x="672" y="1591" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="Activity_1f3cipf_di" bpmnElement="Activity_1f3cipf"> + <dc:Bounds x="473" y="1551" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Event_18qzt1n_di" bpmnElement="Event_18qzt1n"> + <dc:Bounds x="672" y="1573" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Event_0lvvn7i_di" bpmnElement="Event_0lvvn7i"> + <dc:Bounds x="372" y="1573" width="36" height="36" /> + </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn:definitions> diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn index 4debe1fe21..ae81364f90 100644 --- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn +++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeallocateAccessNSSI.bpmn @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17amn3o" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1"> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17amn3o" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0"> <bpmn:process id="DoDeallocateAccessNSSI" name="DoDeallocateAccessNSSI" isExecutable="true"> <bpmn:startEvent id="Event_0seox25" name="Start"> <bpmn:outgoing>Flow_14g5p2j</bpmn:outgoing> @@ -37,7 +37,7 @@ deallocator.preProcessRequest(execution)</bpmn:script> <bpmn:sequenceFlow id="Flow_16hk034" name="No" sourceRef="Gateway_1ypyzn3" targetRef="Activity_0umktii" /> <bpmn:sequenceFlow id="Flow_1she7i5" sourceRef="Activity_0szls0v" targetRef="Activity_0tbndh6" /> <bpmn:intermediateThrowEvent id="Event_0vthuwp" name="Goto Terminate TN FH/MH NSSI"> - <bpmn:incoming>Flow_1lfvp5s</bpmn:incoming> + <bpmn:incoming>Flow_01ssl7f</bpmn:incoming> <bpmn:linkEventDefinition id="LinkEventDefinition_0dpa9td" name="TerminateTnNSSI" /> </bpmn:intermediateThrowEvent> <bpmn:intermediateCatchEvent id="Event_0opsm2p" name="TN FH/MH Termination"> @@ -45,9 +45,8 @@ deallocator.preProcessRequest(execution)</bpmn:script> <bpmn:linkEventDefinition id="LinkEventDefinition_1gactc9" name="TerminateTnNSSI" /> </bpmn:intermediateCatchEvent> <bpmn:sequenceFlow id="Flow_0cj22bs" sourceRef="Event_0opsm2p" targetRef="Activity_0uul9fb" /> - <bpmn:sequenceFlow id="Flow_0412ven" sourceRef="Activity_0qho4pw" targetRef="Activity_03zg1pp" /> - <bpmn:sequenceFlow id="Flow_0tlog6y" sourceRef="Activity_03zg1pp" targetRef="Activity_1ri9jrn" /> - <bpmn:sequenceFlow id="Flow_1lfvp5s" sourceRef="Activity_1v1ra2k" targetRef="Event_0vthuwp" /> + <bpmn:sequenceFlow id="Flow_0412ven" sourceRef="Activity_0qho4pw" targetRef="Gateway_11aiy0x" /> + <bpmn:sequenceFlow id="Flow_1lfvp5s" sourceRef="Activity_1v1ra2k" targetRef="Gateway_0qsknv5" /> <bpmn:scriptTask id="Activity_1i58rru" name="Fetch Related NSSI and Slice profile details" scriptFormat="groovy"> <bpmn:incoming>Flow_1hm17vz</bpmn:incoming> <bpmn:outgoing>Flow_0kt6k2i</bpmn:outgoing> @@ -84,7 +83,7 @@ def deallocator = new DoDeAllocateAccessNSSI() deallocator.performOofAnNfNSSITerminationCall(execution)</bpmn:script> </bpmn:scriptTask> <bpmn:intermediateThrowEvent id="Event_18fpd51" name="Goto Terminate TN FH/MH NSSI"> - <bpmn:incoming>Flow_1x4e0k3</bpmn:incoming> + <bpmn:incoming>Flow_0b3qqvw</bpmn:incoming> <bpmn:linkEventDefinition id="LinkEventDefinition_07j10pb" name="TerminateTnNSSI" /> </bpmn:intermediateThrowEvent> <bpmn:scriptTask id="Activity_1v1ra2k" name="Delete RAN NF NSSI" scriptFormat="groovy"> @@ -117,7 +116,7 @@ deallocator.deallocateAnNfNssi(execution)</bpmn:script> <bpmn:outgoing>Flow_1x4e0k3</bpmn:outgoing> </bpmn:serviceTask> <bpmn:sequenceFlow id="Flow_1bgguw0" sourceRef="Activity_17w3onz" targetRef="Activity_05frw6w" /> - <bpmn:sequenceFlow id="Flow_1x4e0k3" sourceRef="Activity_05frw6w" targetRef="Event_18fpd51" /> + <bpmn:sequenceFlow id="Flow_1x4e0k3" sourceRef="Activity_05frw6w" targetRef="Gateway_0jjou51" /> <bpmn:scriptTask id="Activity_17w3onz" name="Update Job status" scriptFormat="groovy"> <bpmn:incoming>Flow_0vcn5tl</bpmn:incoming> <bpmn:outgoing>Flow_1bgguw0</bpmn:outgoing> @@ -623,14 +622,14 @@ def deallocator = new DoDeAllocateAccessNSSI() deallocator.deleteRanNfSliceProfileInAAI(execution)</bpmn:script> </bpmn:scriptTask> <bpmn:scriptTask id="Activity_03zg1pp" name="Delete TN Slice profiles" scriptFormat="groovy"> - <bpmn:incoming>Flow_0412ven</bpmn:incoming> - <bpmn:outgoing>Flow_0tlog6y</bpmn:outgoing> + <bpmn:incoming>Flow_12wqmdr</bpmn:incoming> + <bpmn:outgoing>Flow_15ok12u</bpmn:outgoing> <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* def deallocator = new DoDeAllocateAccessNSSI() deallocator.deleteTNSliceProfileInAAI(execution)</bpmn:script> </bpmn:scriptTask> <bpmn:scriptTask id="Activity_1ri9jrn" name="Delete RAN NSSI" scriptFormat="groovy"> - <bpmn:incoming>Flow_0tlog6y</bpmn:incoming> + <bpmn:incoming>Flow_183aijy</bpmn:incoming> <bpmn:outgoing>Flow_1nh3x4j</bpmn:outgoing> <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.* def deallocator = new DoDeAllocateAccessNSSI() @@ -639,7 +638,7 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <bpmn:callActivity id="Activity_0umktii" name="Modify RAN NF NSSI" calledElement="DoModifyRanNfNssi"> <bpmn:extensionElements> <camunda:in source="anNfNssiId" target="serviceInstanceID" /> - <camunda:in source="anNfSliceProfileId" target="sliceProfileId" /> + <camunda:in source="anNfSliceProfileId" target="SliceProfileId" /> <camunda:in source="msoRequestId" target="msoRequestId" /> <camunda:in source="globalSubscriberId" target="globalSubscriberId" /> <camunda:in source="subscriptionServiceType" target="subscriptionServiceType" /> @@ -665,13 +664,78 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <bpmn:errorEventDefinition id="ErrorEventDefinition_031y5kl" errorRef="Error_0i5gql0" /> </bpmn:endEvent> <bpmn:sequenceFlow id="Flow_0x71rer" sourceRef="Activity_1wu2d9y" targetRef="Activity_0drkoau" /> + <bpmn:exclusiveGateway id="Gateway_0jjou51" name="Is TN present?" default="Flow_0b3qqvw"> + <bpmn:incoming>Flow_1x4e0k3</bpmn:incoming> + <bpmn:outgoing>Flow_0b3qqvw</bpmn:outgoing> + <bpmn:outgoing>Flow_1yewqtt</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="Flow_0b3qqvw" name="Yes" sourceRef="Gateway_0jjou51" targetRef="Event_18fpd51" /> + <bpmn:intermediateThrowEvent id="Event_05q1nj2" name="Goto AAI Updates"> + <bpmn:incoming>Flow_1yewqtt</bpmn:incoming> + <bpmn:linkEventDefinition id="LinkEventDefinition_1tasi5v" name="UpdateAAI" /> + </bpmn:intermediateThrowEvent> + <bpmn:sequenceFlow id="Flow_1yewqtt" name="No" sourceRef="Gateway_0jjou51" targetRef="Event_05q1nj2"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:exclusiveGateway id="Gateway_0qsknv5" name="Is TN present?" default="Flow_01ssl7f"> + <bpmn:incoming>Flow_1lfvp5s</bpmn:incoming> + <bpmn:outgoing>Flow_01ssl7f</bpmn:outgoing> + <bpmn:outgoing>Flow_1scubfn</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="Flow_01ssl7f" name="Yes" sourceRef="Gateway_0qsknv5" targetRef="Event_0vthuwp" /> + <bpmn:intermediateThrowEvent id="Event_0y39bzp" name="Goto AAI Updates"> + <bpmn:incoming>Flow_1scubfn</bpmn:incoming> + <bpmn:linkEventDefinition id="LinkEventDefinition_01g0uqc" name="UpdateAAI" /> + </bpmn:intermediateThrowEvent> + <bpmn:sequenceFlow id="Flow_1scubfn" name="No" sourceRef="Gateway_0qsknv5" targetRef="Event_0y39bzp"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:exclusiveGateway id="Gateway_11aiy0x" name="Is TN present?" default="Flow_12wqmdr"> + <bpmn:incoming>Flow_0412ven</bpmn:incoming> + <bpmn:outgoing>Flow_12wqmdr</bpmn:outgoing> + <bpmn:outgoing>Flow_0r8ldai</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="Flow_12wqmdr" name="Yes" sourceRef="Gateway_11aiy0x" targetRef="Activity_03zg1pp" /> + <bpmn:sequenceFlow id="Flow_0r8ldai" name="No" sourceRef="Gateway_11aiy0x" targetRef="Gateway_187nc60"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{(execution.getVariable("IsRANNfAlonePresent" ) == true)}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:sequenceFlow id="Flow_183aijy" sourceRef="Gateway_187nc60" targetRef="Activity_1ri9jrn" /> + <bpmn:parallelGateway id="Gateway_187nc60"> + <bpmn:incoming>Flow_0r8ldai</bpmn:incoming> + <bpmn:incoming>Flow_15ok12u</bpmn:incoming> + <bpmn:outgoing>Flow_183aijy</bpmn:outgoing> + </bpmn:parallelGateway> + <bpmn:sequenceFlow id="Flow_15ok12u" sourceRef="Activity_03zg1pp" targetRef="Gateway_187nc60" /> </bpmn:process> <bpmn:error id="Error_0i5gql0" name="DeallocateWorkflowError" errorCode="2500" /> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoDeallocateAccessNSSI"> + <bpmndi:BPMNEdge id="Flow_0x71rer_di" bpmnElement="Flow_0x71rer"> + <di:waypoint x="1275" y="650" /> + <di:waypoint x="1320" y="650" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0k55zuy_di" bpmnElement="Flow_0k55zuy"> + <di:waypoint x="1650" y="215" /> + <di:waypoint x="1650" y="100" /> + <di:waypoint x="1822" y="100" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1658" y="155" width="15" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0vcn5tl_di" bpmnElement="Flow_0vcn5tl"> + <di:waypoint x="1675" y="240" /> + <di:waypoint x="1820" y="240" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1739" y="222" width="18" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_18y4ab2_di" bpmnElement="Flow_18y4ab2"> + <di:waypoint x="1500" y="240" /> + <di:waypoint x="1625" y="240" /> + </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0omhxaj_di" bpmnElement="Flow_0omhxaj"> <di:waypoint x="238" y="1110" /> - <di:waypoint x="360" y="1110" /> + <di:waypoint x="290" y="1110" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_03fig6p_di" bpmnElement="Flow_03fig6p"> <di:waypoint x="2085" y="880" /> @@ -767,10 +831,6 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <di:waypoint x="1420" y="650" /> <di:waypoint x="1460" y="650" /> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0x71rer_di" bpmnElement="Flow_0x71rer"> - <di:waypoint x="1275" y="650" /> - <di:waypoint x="1320" y="650" /> - </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1s5fdmz_di" bpmnElement="Flow_1s5fdmz"> <di:waypoint x="1130" y="650" /> <di:waypoint x="1175" y="650" /> @@ -810,7 +870,7 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <di:waypoint x="1207" y="1110" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1nh3x4j_di" bpmnElement="Flow_1nh3x4j"> - <di:waypoint x="810" y="1110" /> + <di:waypoint x="840" y="1110" /> <di:waypoint x="880" y="1110" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_15bkzm7_di" bpmnElement="Flow_15bkzm7"> @@ -844,7 +904,7 @@ deallocator.deleteANNSSI(execution)</bpmn:script> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1x4e0k3_di" bpmnElement="Flow_1x4e0k3"> <di:waypoint x="2130" y="240" /> - <di:waypoint x="2232" y="240" /> + <di:waypoint x="2235" y="240" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1bgguw0_di" bpmnElement="Flow_1bgguw0"> <di:waypoint x="1920" y="240" /> @@ -852,15 +912,11 @@ deallocator.deleteANNSSI(execution)</bpmn:script> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_1lfvp5s_di" bpmnElement="Flow_1lfvp5s"> <di:waypoint x="2380" y="410" /> - <di:waypoint x="2422" y="410" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0tlog6y_di" bpmnElement="Flow_0tlog6y"> - <di:waypoint x="630" y="1110" /> - <di:waypoint x="710" y="1110" /> + <di:waypoint x="2435" y="410" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0412ven_di" bpmnElement="Flow_0412ven"> - <di:waypoint x="460" y="1110" /> - <di:waypoint x="530" y="1110" /> + <di:waypoint x="390" y="1110" /> + <di:waypoint x="435" y="1110" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="Flow_0cj22bs_di" bpmnElement="Flow_0cj22bs"> <di:waypoint x="238" y="880" /> @@ -920,25 +976,58 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <di:waypoint x="238" y="410" /> <di:waypoint x="290" y="410" /> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_18y4ab2_di" bpmnElement="Flow_18y4ab2"> - <di:waypoint x="1500" y="240" /> - <di:waypoint x="1625" y="240" /> + <bpmndi:BPMNEdge id="Flow_0b3qqvw_di" bpmnElement="Flow_0b3qqvw"> + <di:waypoint x="2285" y="240" /> + <di:waypoint x="2362" y="240" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2315" y="222" width="18" height="14" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0vcn5tl_di" bpmnElement="Flow_0vcn5tl"> - <di:waypoint x="1675" y="240" /> - <di:waypoint x="1820" y="240" /> + <bpmndi:BPMNEdge id="Flow_1yewqtt_di" bpmnElement="Flow_1yewqtt"> + <di:waypoint x="2260" y="265" /> + <di:waypoint x="2260" y="282" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1739" y="222" width="18" height="14" /> + <dc:Bounds x="2268" y="271" width="15" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0k55zuy_di" bpmnElement="Flow_0k55zuy"> - <di:waypoint x="1650" y="215" /> - <di:waypoint x="1650" y="100" /> - <di:waypoint x="1822" y="100" /> + <bpmndi:BPMNEdge id="Flow_01ssl7f_di" bpmnElement="Flow_01ssl7f"> + <di:waypoint x="2485" y="410" /> + <di:waypoint x="2552" y="410" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1658" y="155" width="15" height="14" /> + <dc:Bounds x="2510" y="392" width="18" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1scubfn_di" bpmnElement="Flow_1scubfn"> + <di:waypoint x="2460" y="435" /> + <di:waypoint x="2460" y="482" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2468" y="456" width="15" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_12wqmdr_di" bpmnElement="Flow_12wqmdr"> + <di:waypoint x="460" y="1135" /> + <di:waypoint x="460" y="1260" /> + <di:waypoint x="520" y="1260" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="466" y="1199" width="18" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0r8ldai_di" bpmnElement="Flow_0r8ldai"> + <di:waypoint x="485" y="1110" /> + <di:waypoint x="655" y="1110" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="589" y="1092" width="15" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_183aijy_di" bpmnElement="Flow_183aijy"> + <di:waypoint x="705" y="1110" /> + <di:waypoint x="740" y="1110" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_15ok12u_di" bpmnElement="Flow_15ok12u"> + <di:waypoint x="620" y="1260" /> + <di:waypoint x="680" y="1260" /> + <di:waypoint x="680" y="1135" /> + </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="Event_0seox25_di" bpmnElement="Event_0seox25"> <dc:Bounds x="202" y="392" width="36" height="36" /> <bpmndi:BPMNLabel> @@ -957,12 +1046,6 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <bpmndi:BPMNShape id="Gateway_1ypyzn3_di" bpmnElement="Gateway_1ypyzn3" isMarkerVisible="true"> <dc:Bounds x="1265" y="385" width="50" height="50" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_1dvx4n9_di" bpmnElement="Event_0vthuwp"> - <dc:Bounds x="2422" y="392" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="2399" y="438" width="82" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_1ekryu8_di" bpmnElement="Event_0opsm2p"> <dc:Bounds x="202" y="862" width="36" height="36" /> <bpmndi:BPMNLabel> @@ -984,15 +1067,15 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <bpmndi:BPMNShape id="Activity_1h4jup8_di" bpmnElement="Activity_0gzrekf"> <dc:Bounds x="1100" y="370" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_18fpd51_di" bpmnElement="Event_18fpd51"> - <dc:Bounds x="2232" y="222" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="2209" y="268" width="82" height="27" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0m43umg_di" bpmnElement="Activity_1v1ra2k"> <dc:Bounds x="2280" y="370" width="100" height="80" /> </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_05frw6w_di" bpmnElement="Activity_05frw6w"> + <dc:Bounds x="2030" y="200" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0njdei2_di" bpmnElement="Activity_17w3onz"> + <dc:Bounds x="1820" y="200" width="100" height="80" /> + </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_1i1fknn_di" bpmnElement="Activity_1irtrgt"> <dc:Bounds x="1970" y="370" width="100" height="80" /> </bpmndi:BPMNShape> @@ -1029,21 +1112,94 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <bpmndi:BPMNShape id="Activity_1i9b3oi_di" bpmnElement="Activity_114fx71"> <dc:Bounds x="1330" y="840" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_01s2lve_di" bpmnElement="Activity_0umktii"> - <dc:Bounds x="1400" y="200" width="100" height="80" /> + <bpmndi:BPMNShape id="Event_18fpd51_di" bpmnElement="Event_18fpd51"> + <dc:Bounds x="2362" y="222" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2340" y="268" width="81" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_05frw6w_di" bpmnElement="Activity_05frw6w"> - <dc:Bounds x="2030" y="200" width="100" height="80" /> + <bpmndi:BPMNShape id="Event_1dvx4n9_di" bpmnElement="Event_0vthuwp"> + <dc:Bounds x="2552" y="392" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2530" y="438" width="81" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0njdei2_di" bpmnElement="Activity_17w3onz"> - <dc:Bounds x="1820" y="200" width="100" height="80" /> + <bpmndi:BPMNShape id="Gateway_0jjou51_di" bpmnElement="Gateway_0jjou51" isMarkerVisible="true"> + <dc:Bounds x="2235" y="215" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2224" y="185" width="73" height="14" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Gateway_0g02vzi_di" bpmnElement="Gateway_0g02vzi" isMarkerVisible="true"> - <dc:Bounds x="1625" y="215" width="50" height="50" /> + <bpmndi:BPMNShape id="Event_05q1nj2_di" bpmnElement="Event_05q1nj2"> + <dc:Bounds x="2242" y="282" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1619" y="272" width="63" height="27" /> + <dc:Bounds x="2218" y="328" width="90" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Gateway_0qsknv5_di" bpmnElement="Gateway_0qsknv5" isMarkerVisible="true"> + <dc:Bounds x="2435" y="385" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2423" y="361" width="73" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Event_0y39bzp_di" bpmnElement="Event_0y39bzp"> + <dc:Bounds x="2442" y="482" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2418" y="528" width="90" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0r4899a_di" bpmnElement="Activity_0qho4pw"> + <dc:Bounds x="290" y="1070" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Gateway_11aiy0x_di" bpmnElement="Gateway_11aiy0x" isMarkerVisible="true"> + <dc:Bounds x="435" y="1085" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="424" y="1055" width="73" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0b0pl0x_di" bpmnElement="Activity_03zg1pp"> + <dc:Bounds x="520" y="1220" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0dreslj_di" bpmnElement="Activity_1ri9jrn"> + <dc:Bounds x="740" y="1070" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Gateway_10923hr_di" bpmnElement="Gateway_187nc60"> + <dc:Bounds x="655" y="1085" width="50" height="50" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0qbd3cz_di" bpmnElement="Activity_0qbd3cz" isExpanded="true"> + <dc:Bounds x="820" y="1310" width="770" height="170" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="Flow_0nsc2oc_di" bpmnElement="Flow_0nsc2oc"> + <di:waypoint x="1240" y="1414" /> + <di:waypoint x="1320" y="1414" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1q1450g_di" bpmnElement="Flow_1q1450g"> + <di:waypoint x="888" y="1414" /> + <di:waypoint x="990" y="1414" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_0alqcat_di" bpmnElement="Flow_0alqcat"> + <di:waypoint x="1090" y="1414" /> + <di:waypoint x="1140" y="1414" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_035ivcv_di" bpmnElement="Flow_035ivcv"> + <di:waypoint x="1420" y="1414" /> + <di:waypoint x="1502" y="1414" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="Event_13wl9ag_di" bpmnElement="Event_13wl9ag"> + <dc:Bounds x="852" y="1396" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Event_0ugnt78_di" bpmnElement="Event_0ugnt78"> + <dc:Bounds x="1502" y="1396" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_1mzoss1_di" bpmnElement="Activity_1mzoss1"> + <dc:Bounds x="1320" y="1374" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_055w5hr_di" bpmnElement="Activity_055w5hr"> + <dc:Bounds x="1140" y="1374" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_1nr7xyr_di" bpmnElement="Activity_1nr7xyr"> + <dc:Bounds x="990" y="1374" width="100" height="80" /> + </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_0jtob0z_di" bpmnElement="Activity_0jtob0z"> <dc:Bounds x="1780" y="610" width="100" height="80" /> </bpmndi:BPMNShape> @@ -1074,6 +1230,26 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <bpmndi:BPMNShape id="Activity_10vgzv9_di" bpmnElement="Activity_0lszayp"> <dc:Bounds x="1720" y="370" width="100" height="80" /> </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0c0vkj6_di" bpmnElement="Activity_0c0vkj6" isExpanded="true"> + <dc:Bounds x="930" y="1600" width="440" height="140" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="Flow_0bkcs42_di" bpmnElement="Flow_0bkcs42"> + <di:waypoint x="1018" y="1661" /> + <di:waypoint x="1083" y="1661" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Flow_1b5mtc4_di" bpmnElement="Flow_1b5mtc4"> + <di:waypoint x="1183" y="1661" /> + <di:waypoint x="1282" y="1661" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="Event_1bqq1on_di" bpmnElement="Event_1bqq1on"> + <dc:Bounds x="982" y="1643" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Event_0qb738v_di" bpmnElement="Event_0qb738v"> + <dc:Bounds x="1282" y="1643" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Activity_0187ysa_di" bpmnElement="Activity_0187ysa"> + <dc:Bounds x="1083" y="1621" width="100" height="80" /> + </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Activity_115teb9_di" bpmnElement="Activity_115teb9"> <dc:Bounds x="1460" y="610" width="100" height="80" /> </bpmndi:BPMNShape> @@ -1155,72 +1331,18 @@ deallocator.deleteANNSSI(execution)</bpmn:script> <dc:Bounds x="189" y="1135" width="62" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0r4899a_di" bpmnElement="Activity_0qho4pw"> - <dc:Bounds x="360" y="1070" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0b0pl0x_di" bpmnElement="Activity_03zg1pp"> - <dc:Bounds x="530" y="1070" width="100" height="80" /> + <bpmndi:BPMNShape id="Activity_01s2lve_di" bpmnElement="Activity_0umktii"> + <dc:Bounds x="1400" y="200" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0dreslj_di" bpmnElement="Activity_1ri9jrn"> - <dc:Bounds x="710" y="1070" width="100" height="80" /> + <bpmndi:BPMNShape id="Gateway_0g02vzi_di" bpmnElement="Gateway_0g02vzi" isMarkerVisible="true"> + <dc:Bounds x="1625" y="215" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1619" y="272" width="63" height="27" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Event_1m6hsxq_di" bpmnElement="Event_161u9s2"> <dc:Bounds x="1822" y="82" width="36" height="36" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0qbd3cz_di" bpmnElement="Activity_0qbd3cz" isExpanded="true"> - <dc:Bounds x="820" y="1310" width="770" height="170" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_0nsc2oc_di" bpmnElement="Flow_0nsc2oc"> - <di:waypoint x="1240" y="1414" /> - <di:waypoint x="1320" y="1414" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1q1450g_di" bpmnElement="Flow_1q1450g"> - <di:waypoint x="888" y="1414" /> - <di:waypoint x="990" y="1414" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_0alqcat_di" bpmnElement="Flow_0alqcat"> - <di:waypoint x="1090" y="1414" /> - <di:waypoint x="1140" y="1414" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_035ivcv_di" bpmnElement="Flow_035ivcv"> - <di:waypoint x="1420" y="1414" /> - <di:waypoint x="1502" y="1414" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_13wl9ag_di" bpmnElement="Event_13wl9ag"> - <dc:Bounds x="852" y="1396" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0ugnt78_di" bpmnElement="Event_0ugnt78"> - <dc:Bounds x="1502" y="1396" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1mzoss1_di" bpmnElement="Activity_1mzoss1"> - <dc:Bounds x="1320" y="1374" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_055w5hr_di" bpmnElement="Activity_055w5hr"> - <dc:Bounds x="1140" y="1374" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_1nr7xyr_di" bpmnElement="Activity_1nr7xyr"> - <dc:Bounds x="990" y="1374" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0c0vkj6_di" bpmnElement="Activity_0c0vkj6" isExpanded="true"> - <dc:Bounds x="930" y="1600" width="440" height="140" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Flow_0bkcs42_di" bpmnElement="Flow_0bkcs42"> - <di:waypoint x="1018" y="1661" /> - <di:waypoint x="1083" y="1661" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="Flow_1b5mtc4_di" bpmnElement="Flow_1b5mtc4"> - <di:waypoint x="1183" y="1661" /> - <di:waypoint x="1282" y="1661" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="Event_1bqq1on_di" bpmnElement="Event_1bqq1on"> - <dc:Bounds x="982" y="1643" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Event_0qb738v_di" bpmnElement="Event_0qb738v"> - <dc:Bounds x="1282" y="1643" width="36" height="36" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Activity_0187ysa_di" bpmnElement="Activity_0187ysa"> - <dc:Bounds x="1083" y="1621" width="100" height="80" /> - </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn:definitions> diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/Resource.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/Resource.java index 2a8852a4bd..57ff837740 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/Resource.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/Resource.java @@ -40,6 +40,8 @@ public class Resource implements Serializable { private String cvnfModuleCustomizationId; private String instanceName; private String modelInvariantId; + private String modelVersionId; + private String modelCustomizationId; private int processingPriority; private Resource parent; private List<Resource> children; @@ -140,6 +142,21 @@ public class Resource implements Serializable { this.modelInvariantId = modelInvariantId; } + public String getModelVersionId() { + return modelVersionId; + } + + public void setModelVersionId(String modelVersionId) { + this.modelVersionId = modelVersionId; + } + + public String getModelCustomizationId() { + return modelCustomizationId; + } + + public void setModelCustomizationId(String modelCustomizationId) { + this.modelCustomizationId = modelCustomizationId; + } public int getProcessingPriority() { return processingPriority == 0 ? (isBaseVfModule() ? Integer.MIN_VALUE + 1 : 0) : processingPriority; diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java index b5ad8d8c03..cb4ee014b7 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoader.java @@ -38,6 +38,8 @@ import org.onap.so.bpmn.infrastructure.workflow.tasks.VrfBondingServiceException import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType; import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; +import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork; +import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoPnf; import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup; import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils; import org.onap.so.client.exception.ExceptionBuilder; @@ -199,6 +201,7 @@ public class ServiceEBBLoader { var serviceResource = new Resource(WorkflowType.SERVICE, serviceInstanceMSO.getServiceInstanceId(), false, null); serviceResource.setModelInvariantId(serviceInstanceAAI.getModelInvariantId()); + serviceResource.setModelVersionId(serviceInstanceAAI.getModelVersionId()); resourceList.add(serviceResource); traverseServiceInstanceMSOVnfs(resourceList, serviceResource, aaiResourceIds, serviceInstanceMSO); traverseServiceInstanceMSOPnfs(resourceList, serviceResource, aaiResourceIds, serviceInstanceMSO); @@ -206,8 +209,15 @@ public class ServiceEBBLoader { for (org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network : serviceInstanceMSO .getNetworks()) { aaiResourceIds.add(new Pair<>(WorkflowType.NETWORK, network.getNetworkId())); - resourceList - .add(new Resource(WorkflowType.NETWORK, network.getNetworkId(), false, serviceResource)); + Resource networkResource = + new Resource(WorkflowType.NETWORK, network.getNetworkId(), false, serviceResource); + ModelInfoNetwork modelInfoNetwork = network.getModelInfoNetwork(); + if (modelInfoNetwork != null) { + networkResource.setModelCustomizationId(modelInfoNetwork.getModelCustomizationUUID()); + networkResource.setModelVersionId(modelInfoNetwork.getModelUUID()); + networkResource.setModelCustomizationId(modelInfoNetwork.getModelCustomizationUUID()); + } + resourceList.add(networkResource); } } if (serviceInstanceMSO.getCollection() != null) { @@ -252,6 +262,8 @@ public class ServiceEBBLoader { GenericVnf genericVnf = bbInputSetupUtils.getAAIGenericVnf(vnf.getVnfId()); Resource vnfResource = new Resource(WorkflowType.VNF, vnf.getVnfId(), false, serviceResource); vnfResource.setVnfCustomizationId(genericVnf.getModelCustomizationId()); + vnfResource.setModelCustomizationId(genericVnf.getModelCustomizationId()); + vnfResource.setModelVersionId(genericVnf.getModelVersionId()); resourceList.add(vnfResource); traverseVnfModules(resourceList, vnfResource, aaiResourceIds, vnf); if (vnf.getVolumeGroups() != null) { @@ -272,7 +284,13 @@ public class ServiceEBBLoader { } for (org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf : serviceInstanceMSO.getPnfs()) { aaiResourceIds.add(new Pair<>(WorkflowType.PNF, pnf.getPnfId())); - resourceList.add(new Resource(WorkflowType.PNF, pnf.getPnfId(), false, serviceResource)); + Resource resource = new Resource(WorkflowType.PNF, pnf.getPnfId(), false, serviceResource); + ModelInfoPnf modelInfo = pnf.getModelInfoPnf(); + if (modelInfo != null) { + resource.setModelVersionId(modelInfo.getModelUuid()); + resource.setModelCustomizationId(modelInfo.getModelCustomizationUuid()); + } + resourceList.add(resource); } } @@ -437,6 +455,10 @@ public class ServiceEBBLoader { for (VfModule vfModule : vnf.getVfModules()) { aaiResourceIds.add(new Pair<>(WorkflowType.VFMODULE, vfModule.getVfModuleId())); Resource resource = new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false, vnfResource); + org.onap.aai.domain.yang.VfModule aaiVfModule = + bbInputSetupUtils.getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId()); + resource.setModelCustomizationId(aaiVfModule.getModelCustomizationId()); + resource.setModelInvariantId(aaiVfModule.getModelInvariantId()); resource.setBaseVfModule(vfModule.getModelInfoVfModule().getIsBaseBoolean()); resourceList.add(resource); } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/UserParamsServiceTraversal.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/UserParamsServiceTraversal.java index c383b4a73a..77cd65b946 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/UserParamsServiceTraversal.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/UserParamsServiceTraversal.java @@ -38,6 +38,7 @@ import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization; import org.onap.so.db.catalog.beans.CvnfcCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.client.CatalogDbClient; +import org.onap.so.serviceinstancebeans.ModelInfo; import org.onap.so.serviceinstancebeans.Networks; import org.onap.so.serviceinstancebeans.Pnfs; import org.onap.so.serviceinstancebeans.Service; @@ -93,6 +94,11 @@ public class UserParamsServiceTraversal { List<Resource> resourceList = new ArrayList<>(); Resource serviceResource = new Resource(WorkflowType.SERVICE, validate.getModelInfo().getModelVersionId(), false, null); + ModelInfo modelInfo = validate.getModelInfo(); + if (modelInfo != null) { + serviceResource.setModelVersionId(modelInfo.getModelVersionId()); + serviceResource.setModelInvariantId(modelInfo.getModelInvariantUuid()); + } resourceList.add(serviceResource); if (validate.getResources().getVnfs() != null) { setResourceListForVnfs(execution, resourceList, serviceResource, validate); @@ -115,6 +121,11 @@ public class UserParamsServiceTraversal { serviceResource); vnfResource.setProcessingPriority(vnf.getProcessingPriority()); vnfResource.setInstanceName(vnf.getInstanceName()); + ModelInfo modelInfo = vnf.getModelInfo(); + if (modelInfo != null) { + vnfResource.setModelCustomizationId(modelInfo.getModelCustomizationUuid()); + vnfResource.setModelVersionId(modelInfo.getModelVersionId()); + } resourceList.add(vnfResource); setResourceListForVfModules(execution, resourceList, vnfResource, validate, vnf); } @@ -160,6 +171,11 @@ public class UserParamsServiceTraversal { foundVfModuleOrVG = true; Resource resource = setVfModuleWorkFlowTypeToResourceList(resourceList, vnfResource, vfModuleCustomization, vfModule); + if (vnf.getModelInfo() != null) { + resource.setModelVersionId(vnf.getModelInfo().getModelVersionId()); + } + resource.setVfModuleCustomizationId(vfModuleCustomization.getModelCustomizationUUID()); + resource.setModelCustomizationId(vfModuleCustomization.getModelCustomizationUUID()); setConfigurationWorkFlowTypeToResourceList(resourceList, vnfResource, validate, vnf, vfModule, resource); } } @@ -211,6 +227,11 @@ public class UserParamsServiceTraversal { for (Pnfs pnf : validate.getResources().getPnfs()) { Resource pnfResource = new Resource(WorkflowType.PNF, pnf.getModelInfo().getModelCustomizationId(), false, serviceResource); + ModelInfo modelInfo = pnf.getModelInfo(); + if (modelInfo != null) { + pnfResource.setModelCustomizationId(modelInfo.getModelCustomizationUuid()); + pnfResource.setModelVersionId(modelInfo.getModelVersionId()); + } pnfResource.setProcessingPriority(pnf.getProcessingPriority()); resourceList.add(pnfResource); } @@ -222,6 +243,11 @@ public class UserParamsServiceTraversal { Resource networkResource = new Resource(WorkflowType.NETWORK, network.getModelInfo().getModelCustomizationId(), false, serviceResource); networkResource.setProcessingPriority(network.getProcessingPriority()); + ModelInfo modelInfo = network.getModelInfo(); + if (modelInfo != null) { + networkResource.setModelCustomizationId(modelInfo.getModelCustomizationUuid()); + networkResource.setModelVersionId(modelInfo.getModelVersionId()); + } resourceList.add(networkResource); } if (requestAction.equals(CREATE_INSTANCE)) { diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java index b950eb41be..3778f64612 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoader.java @@ -40,7 +40,6 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup; -import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule; import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup; import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils; import org.onap.so.client.exception.ExceptionBuilder; @@ -117,6 +116,9 @@ public class VnfEBBLoader { if (vnf.getVnfId().equals(vnfId)) { aaiResourceIds.add(new Pair<>(WorkflowType.VNF, vnf.getVnfId())); Resource vnfResource = new Resource(WorkflowType.VNF, vnf.getVnfId(), false, serviceResource); + org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId); + vnfResource.setModelCustomizationId(aaiGenericVnf.getModelCustomizationId()); + vnfResource.setModelVersionId(aaiGenericVnf.getModelVersionId()); resourceList.add(vnfResource); processVfModules(vnf, aaiResourceIds, resourceList, vnfResource, execution); processVolumeGroups(vnf, aaiResourceIds, resourceList, vnfResource); @@ -131,8 +133,11 @@ public class VnfEBBLoader { for (GenericVnf vnf : serviceInstanceMSO.getVnfs()) { if (vnf.getVnfId().equals(vnfId)) { aaiResourceIds.add(new Pair<>(WorkflowType.VNF, vnf.getVnfId())); - Resource vnfResource = new Resource(WorkflowType.VNF, - bbInputSetupUtils.getAAIGenericVnf(vnfId).getModelCustomizationId(), false, serviceResource); + org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId); + Resource vnfResource = + new Resource(WorkflowType.VNF, aaiGenericVnf.getModelCustomizationId(), false, serviceResource); + vnfResource.setModelCustomizationId(aaiGenericVnf.getModelCustomizationId()); + vnfResource.setModelVersionId(aaiGenericVnf.getModelVersionId()); resourceList.add(vnfResource); processVfModules(vnf, aaiResourceIds, resourceList, vnfResource, execution); processVolumeGroups(vnf, aaiResourceIds, resourceList, vnfResource); @@ -141,10 +146,10 @@ public class VnfEBBLoader { } } - private void findConfigurationsInsideVfModule(DelegateExecution execution, String vnfId, String vfModuleId, - List<Resource> resourceList, Resource vfModuleResource, List<Pair<WorkflowType, String>> aaiResourceIds) { + private void findConfigurationsInsideVfModule(DelegateExecution execution, + org.onap.aai.domain.yang.VfModule aaiVfModule, List<Resource> resourceList, Resource vfModuleResource, + List<Pair<WorkflowType, String>> aaiResourceIds) { try { - org.onap.aai.domain.yang.VfModule aaiVfModule = bbInputSetupUtils.getAAIVfModule(vnfId, vfModuleId); AAIResultWrapper vfModuleWrapper = new AAIResultWrapper( new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiVfModule)); Optional<Relationships> relationshipsOp; @@ -166,11 +171,14 @@ public class VnfEBBLoader { aaiResourceIds.add(new Pair<>(WorkflowType.VFMODULE, vfModule.getVfModuleId())); Resource vfModuleResource = new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false, vnfResource); - Optional.ofNullable(vfModule.getModelInfoVfModule()).map(ModelInfoVfModule::getIsBaseBoolean) - .ifPresent(vfModuleResource::setBaseVfModule); + org.onap.aai.domain.yang.VfModule aaiVfModule = + bbInputSetupUtils.getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId()); + vfModuleResource.setModelInvariantId(aaiVfModule.getModelInvariantId()); + vfModuleResource.setModelCustomizationId(aaiVfModule.getModelCustomizationId()); + vfModuleResource.setBaseVfModule(aaiVfModule.isIsBaseVfModule()); resourceList.add(vfModuleResource); - findConfigurationsInsideVfModule(execution, vnf.getVnfId(), vfModule.getVfModuleId(), resourceList, - vfModuleResource, aaiResourceIds); + findConfigurationsInsideVfModule(execution, aaiVfModule, resourceList, vfModuleResource, + aaiResourceIds); } } } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java index ff6c113af3..dc77ea1f0c 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java @@ -24,12 +24,10 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; -import org.apache.logging.log4j.util.Strings; import org.onap.so.bpmn.common.BBConstants; import org.onap.so.bpmn.common.BuildingBlockExecution; -import org.onap.so.bpmn.common.listener.flowmanipulator.FlowManipulatorListenerRunner; import org.onap.so.bpmn.common.listener.flowmanipulator.PreFlowManipulator; -import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; +import org.onap.so.bpmn.infrastructure.workflow.tasks.Resource; import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock; import org.onap.so.db.catalog.beans.PnfResourceCustomization; import org.onap.so.db.catalog.beans.Service; @@ -40,7 +38,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; @Component public class SkipCDSBuildingBlockListener implements PreFlowManipulator { @@ -76,43 +73,37 @@ public class SkipCDSBuildingBlockListener implements PreFlowManipulator { @Override public void run(List<ExecuteBuildingBlock> flowsToExecute, ExecuteBuildingBlock currentBB, BuildingBlockExecution execution) { - String customizationUUID = currentBB.getBuildingBlock().getKey(); + String resourceKey = currentBB.getBuildingBlock().getKey(); + List<Resource> resources = execution.getVariable("resources"); + Resource resource = resources.stream().filter(r -> resourceKey.equals(r.getResourceId())).findFirst() + .orElseThrow(() -> new IllegalArgumentException("Resource not found for key:" + resourceKey)); - if ("SERVICE".equalsIgnoreCase(currentBB.getBuildingBlock().getBpmnScope())) { - String modelUUID = currentBB.getRequestDetails().getModelInfo().getModelUuid(); - Service service = catalogDbClient.getServiceByID(modelUUID); - currentSequenceSkipCheck(execution, service.getSkipPostInstConf()); - } else if (currentBB.getBuildingBlock().getBpmnScope().equalsIgnoreCase("VNF") - && containsIgnoreCaseAction(currentBB, vnfActions)) { - List<VnfResourceCustomization> vnfResourceCustomizations = - catalogDbClient.getVnfResourceCustomizationByModelUuid( - currentBB.getRequestDetails().getModelInfo().getModelUuid()); - if (!CollectionUtils.isEmpty(vnfResourceCustomizations)) { - VnfResourceCustomization vrc = catalogDbClient.findVnfResourceCustomizationInList(customizationUUID, - vnfResourceCustomizations); - if (null != vrc) { - logger.debug("getSkipPostInstConf value: " + vrc.getSkipPostInstConf().booleanValue()); - boolean skipConfigVNF = vrc.getSkipPostInstConf().booleanValue(); - currentSequenceSkipCheck(execution, skipConfigVNF); - } + String scope = currentBB.getBuildingBlock().getBpmnScope(); + if ("SERVICE".equalsIgnoreCase(scope)) { + Service service = catalogDbClient.getServiceByID(resource.getModelVersionId()); + currentSequenceSkipCheck(execution, service.getSkipPostInstConf()); + } else if ("VNF".equalsIgnoreCase(scope) && containsIgnoreCaseAction(currentBB, vnfActions)) { + VnfResourceCustomization vrc = catalogDbClient + .getVnfResourceCustomizationByModelCustomizationUUID(resource.getModelCustomizationId()); + if (vrc != null) { + logger.debug("getSkipPostInstConf value: " + vrc.getSkipPostInstConf()); + boolean skipConfigVNF = vrc.getSkipPostInstConf(); + currentSequenceSkipCheck(execution, skipConfigVNF); } } else if (currentBB.getBuildingBlock().getBpmnScope().equalsIgnoreCase("VFModule") && containsIgnoreCaseAction(currentBB, vFModuleAction)) { - - VfModuleCustomization vfc = - catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID(customizationUUID); - + VfModuleCustomization vfc = catalogDbClient + .getVfModuleCustomizationByModelCuztomizationUUID(resource.getModelCustomizationId()); if (null != vfc) { logger.debug("getSkipPostInstConf value: " + vfc.getSkipPostInstConf().booleanValue()); boolean skipVfModule = vfc.getSkipPostInstConf(); currentSequenceSkipCheck(execution, skipVfModule); } - } else if (currentBB.getBuildingBlock().getBpmnScope().equalsIgnoreCase("PNF") && containsIgnoreCaseAction(currentBB, pnfActions)) { - PnfResourceCustomization pnfResourceCustomization = - catalogDbClient.getPnfResourceCustomizationByModelCustomizationUUID(customizationUUID); + PnfResourceCustomization pnfResourceCustomization = catalogDbClient + .getPnfResourceCustomizationByModelCustomizationUUID(resource.getModelCustomizationId()); if (null != pnfResourceCustomization) { logger.debug("getSkipPostInstConf value: " + pnfResourceCustomization.getSkipPostInstConf()); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java index 52196aae49..a044944f29 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java @@ -409,6 +409,10 @@ public class WorkflowActionTest extends BaseTaskTest { serviceInstanceMSO.getVnfs().add(vnf); + VfModule aaiVfModule = new VfModule(); + aaiVfModule.setIsBaseVfModule(false); + + doReturn(aaiVfModule).when(bbSetupUtils).getAAIVfModule(any(), any()); doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("si0"); doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI); doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any()); @@ -932,6 +936,10 @@ public class WorkflowActionTest extends BaseTaskTest { serviceInstanceMSO.getVnfs().add(vnf); serviceInstanceMSO.getPnfs().add(pnf); + VfModule aaiVfModule = new VfModule(); + aaiVfModule.setIsBaseVfModule(false); + + doReturn(aaiVfModule).when(bbSetupUtils).getAAIVfModule(any(), any()); doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123"); doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI); doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any()); @@ -1013,6 +1021,10 @@ public class WorkflowActionTest extends BaseTaskTest { serviceInstanceMSO.getVnfs().add(vnf); + VfModule aaiVfModule = new VfModule(); + aaiVfModule.setIsBaseVfModule(false); + + doReturn(aaiVfModule).when(bbSetupUtils).getAAIVfModule(any(), any()); doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123"); doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI); doReturn(Mockito.mock(GenericVnf.class)).when(bbSetupUtils).getAAIGenericVnf(any()); @@ -1104,6 +1116,11 @@ public class WorkflowActionTest extends BaseTaskTest { serviceInstanceMSO.getVnfs().add(vnf); + org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule(); + aaiVfModule.setIsBaseVfModule(false); + + doReturn(aaiVfModule).when(bbSetupUtils).getAAIVfModule(any(), any()); + doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(bbSetupUtils).getAAIGenericVnf(vnf.getVnfId()); doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123"); doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI); when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource, @@ -1151,21 +1168,26 @@ public class WorkflowActionTest extends BaseTaskTest { vfModule2.setVfModuleId("vfModule2"); vnf.getVfModules().add(vfModule2); serviceInstanceMSO.getVnfs().add(vnf); - VfModule vfModuleAAI = new VfModule(); - vfModuleAAI.setVfModuleId("vfModule2"); + VfModule vfModuleAAI1 = new VfModule(); + vfModuleAAI1.setIsBaseVfModule(false); + VfModule vfModuleAAI2 = new VfModule(); + vfModuleAAI2.setIsBaseVfModule(false); + vfModuleAAI2.setVfModuleId("vfModule2"); RelationshipList relationshipList = new RelationshipList(); Relationship relationship = new Relationship(); relationshipList.getRelationship().add(relationship); - vfModuleAAI.setRelationshipList(relationshipList); + vfModuleAAI2.setRelationshipList(relationshipList); Relationships relationships = new Relationships("abc"); Configuration config = new Configuration(); config.setConfigurationId("configId"); Optional<Configuration> configOp = Optional.of(config); Optional<Relationships> relationshipsOp = Optional.of(relationships); + doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(bbSetupUtils).getAAIGenericVnf(vnf.getVnfId()); doReturn(relationshipsOp).when(workflowActionUtils).extractRelationshipsVnfc(isA(Relationships.class)); doReturn(configOp).when(workflowActionUtils).extractRelationshipsConfiguration(isA(Relationships.class)); - doReturn(vfModuleAAI).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2"); + doReturn(vfModuleAAI1).when(bbSetupUtils).getAAIVfModule("1234", "vfModule1"); + doReturn(vfModuleAAI2).when(bbSetupUtils).getAAIVfModule("1234", "vfModule2"); doReturn(serviceInstanceAAI).when(bbSetupUtils).getAAIServiceInstanceById("123"); doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI); when(catalogDbClient.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(gAction, resource, diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java index 2725626c1a..76763e8ca8 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/ServiceEBBLoaderTest.java @@ -239,6 +239,9 @@ public class ServiceEBBLoaderTest extends BaseTaskTest { aaiConfiguration2.setConfigurationId("testConfigurationId2"); aaiConfiguration2.setRelationshipList(relationshipList1); + org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule(); + aaiVfModule.setIsBaseVfModule(true); + try { doReturn(genericVnfAai).when(mockBbInputSetupUtils).getAAIGenericVnf(genericVnf.getVnfId()); doReturn(serviceInstanceAAI).when(mockBbInputSetupUtils).getAAIServiceInstanceById(resourceId); @@ -247,6 +250,7 @@ public class ServiceEBBLoaderTest extends BaseTaskTest { .getConfiguration("testConfigurationId"); doReturn(Optional.of(aaiConfiguration2)).when(mockAaiConfigurationResources) .getConfiguration("testConfigurationId2"); + doReturn(aaiVfModule).when(mockBbInputSetupUtils).getAAIVfModule(any(), any()); serviceEBBLoader.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds); assertEquals(8, resourceCounter.size()); assertTrue(resourceCounter.get(2).isBaseVfModule()); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java index 78a9628243..2775c6d7b9 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/ebb/loader/VnfEBBLoaderTest.java @@ -47,12 +47,14 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.only; public class VnfEBBLoaderTest { private String serviceId; private String vnfId; + private String vfModuleId; private BBInputSetupUtils bbInputSetupUtils; private BBInputSetup bbInputSetup; private WorkflowActionExtractResourcesAAI workflowActionUtils; @@ -67,6 +69,7 @@ public class VnfEBBLoaderTest { public void setup() { serviceId = "service123"; vnfId = "vnf123"; + vfModuleId = "vfModule123"; serviceInstanceAAI = mock(org.onap.aai.domain.yang.ServiceInstance.class); serviceInstanceMSO = mock(ServiceInstance.class); bbInputSetupUtils = mock(BBInputSetupUtils.class); @@ -95,11 +98,19 @@ public class VnfEBBLoaderTest { GenericVnf genericVnf = mock(GenericVnf.class); doReturn(vnfId).when(genericVnf).getVnfId(); + org.onap.aai.domain.yang.GenericVnf aaiVnf = mock(org.onap.aai.domain.yang.GenericVnf.class); + doReturn(aaiVnf).when(bbInputSetupUtils).getAAIGenericVnf(vnfId); + VfModule vfModule = mock(VfModule.class); + doReturn(vfModuleId).when(vfModule).getVfModuleId(); ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule(); modelInfoVfModule.setIsBaseBoolean(true); doReturn(modelInfoVfModule).when(vfModule).getModelInfoVfModule(); + org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule(); + aaiVfModule.setIsBaseVfModule(true); + doReturn(aaiVfModule).when(bbInputSetupUtils).getAAIVfModule(vnfId, vfModuleId); + doReturn(serviceInstanceAAI).when(bbInputSetupUtils).getAAIServiceInstanceById(serviceId); doReturn(serviceInstanceMSO).when(bbInputSetup).getExistingServiceInstance(serviceInstanceAAI); doReturn(List.of(genericVnf)).when(serviceInstanceMSO).getVnfs(); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListenerTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListenerTest.java index b23147e351..1fbee2dbc8 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListenerTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListenerTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake; import org.junit.Before; import org.junit.Test; @@ -34,6 +35,8 @@ import org.mockito.junit.MockitoJUnitRunner; import org.onap.so.bpmn.common.BBConstants; import org.onap.so.bpmn.common.BuildingBlockExecution; import org.onap.so.bpmn.common.DelegateExecutionImpl; +import org.onap.so.bpmn.infrastructure.workflow.tasks.Resource; +import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType; import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock; import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock; import org.onap.so.db.catalog.beans.PnfResourceCustomization; @@ -41,7 +44,6 @@ import org.onap.so.db.catalog.beans.Service; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResourceCustomization; import org.onap.so.db.catalog.client.CatalogDbClient; -import org.onap.so.serviceinstancebeans.ModelInfo; import org.onap.so.serviceinstancebeans.RequestDetails; @RunWith(MockitoJUnitRunner.Silent.class) @@ -51,25 +53,24 @@ public class SkipCDSBuildingBlockListenerTest { private static final String VNF_SCOPE = "VNF"; private static final String VF_SCOPE = "VFModule"; private static final String PNF_SCOPE = "pnf"; - private static final String TEST_MODELUUID = "123456789"; private static final String VNF_TEST_ACTION = "VnfConfigAssign"; private static final String VFModule_TEST_ACTION = "VfModuleConfigAssign"; private static final String PNFModule_TEST_ACTION = "config-assign"; - private static final String MODELCUSTOMIZATIONUUID = "123456789"; + private static final String SERVICE_MODEL_VERSION_ID = UUID.randomUUID().toString(); + private static final String VNF_MODEL_CUSTOMIZATION_ID = UUID.randomUUID().toString(); + private static final String VF_MODULE_CUSTOMIZATION_ID = UUID.randomUUID().toString(); + private static final String PNF_CUSTOMIZATION_ID = UUID.randomUUID().toString(); private static final String BBNAME = "ControllerExecutionBB"; private static final boolean ISFIRST = true; - private int actual; private List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>(); - private List<VnfResourceCustomization> vnfResourceCustomization; - private List<VfModuleCustomization> vfModuleCustomization; - private ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock(); + private ExecuteBuildingBlock executeBuildingBlock; private RequestDetails reqDetail = new RequestDetails(); private BuildingBlockExecution buildingBlockExecution = new DelegateExecutionImpl(new DelegateExecutionFake()); - private VnfResourceCustomization vnfCust = new VnfResourceCustomization(); - private VfModuleCustomization vfCust = new VfModuleCustomization(); - private PnfResourceCustomization pnfResourceCustomization = new PnfResourceCustomization(); - private BuildingBlock buildingBlock = new BuildingBlock(); + private VnfResourceCustomization vnfCust; + private VfModuleCustomization vfCust; + private PnfResourceCustomization pnfResourceCustomization; + private BuildingBlock buildingBlock; @InjectMocks private SkipCDSBuildingBlockListener skipCDSBuildingBlockListener; @@ -78,10 +79,27 @@ public class SkipCDSBuildingBlockListenerTest { @Before public void before() { - ModelInfo model = new ModelInfo(); - model.setModelUuid(TEST_MODELUUID); - reqDetail.setModelInfo(model); - executeBuildingBlock.setRequestDetails(reqDetail); + executeBuildingBlock = new ExecuteBuildingBlock(); + buildingBlock = new BuildingBlock(); + + ArrayList<Resource> resources = new ArrayList<>(); + Resource service = new Resource(WorkflowType.SERVICE, SERVICE_MODEL_VERSION_ID, false, null); + service.setModelVersionId(SERVICE_MODEL_VERSION_ID); + resources.add(service); + Resource vnf = new Resource(WorkflowType.VNF, VNF_MODEL_CUSTOMIZATION_ID, false, null); + vnf.setModelCustomizationId(VNF_MODEL_CUSTOMIZATION_ID); + resources.add(vnf); + Resource vfModule = new Resource(WorkflowType.VFMODULE, VF_MODULE_CUSTOMIZATION_ID, false, null); + vfModule.setModelCustomizationId(VF_MODULE_CUSTOMIZATION_ID); + resources.add(vfModule); + Resource pnf = new Resource(WorkflowType.PNF, PNF_CUSTOMIZATION_ID, false, null); + pnf.setModelCustomizationId(PNF_CUSTOMIZATION_ID); + resources.add(pnf); + buildingBlockExecution.setVariable("resources", resources); + + vnfCust = new VnfResourceCustomization(); + vfCust = new VfModuleCustomization(); + pnfResourceCustomization = new PnfResourceCustomization(); } @Test @@ -93,133 +111,83 @@ public class SkipCDSBuildingBlockListenerTest { @Test public void testSkipCDSforService() { - setBuildingBlockAndCurrentSequence(SERVICE_SCOPE, "service-config-assign", 0); - Service service = new Service(); - when(catalogDbClient.getServiceByID(TEST_MODELUUID)).thenReturn(service); + setBuildingBlockAndCurrentSequence(SERVICE_SCOPE, "service-config-assign", SERVICE_MODEL_VERSION_ID, 0); + when(catalogDbClient.getServiceByID(SERVICE_MODEL_VERSION_ID)).thenReturn(new Service()); skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution); - actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - assertEquals(1, actual); + assertEquals(1, (int) buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE)); } @Test public void testProcessForVNFToSkipCDSBB() { - // given - setBuildingBlockAndCurrentSequence(VNF_SCOPE, VNF_TEST_ACTION, 0); - vnfResourceCustomization = getVnfResourceCustomizationList(true); + setBuildingBlockAndCurrentSequence(VNF_SCOPE, VNF_TEST_ACTION, VNF_MODEL_CUSTOMIZATION_ID, 0); + when(catalogDbClient.getVnfResourceCustomizationByModelCustomizationUUID(VNF_MODEL_CUSTOMIZATION_ID)) + .thenReturn(vnfCust); - when(catalogDbClient.getVnfResourceCustomizationByModelUuid( - executeBuildingBlock.getRequestDetails().getModelInfo().getModelUuid())) - .thenReturn(vnfResourceCustomization); - when(catalogDbClient.findVnfResourceCustomizationInList(executeBuildingBlock.getBuildingBlock().getKey(), - vnfResourceCustomization)).thenReturn(vnfCust); - - // when skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution); - // then - actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - assertEquals(1, actual); - + assertEquals(1, (int) buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE)); } @Test public void testProcessForVNFNotToSkipCDSBB() { - // given - setBuildingBlockAndCurrentSequence(VNF_SCOPE, VNF_TEST_ACTION, 0); - vnfResourceCustomization = getVnfResourceCustomizationList(false); - - when(catalogDbClient.getVnfResourceCustomizationByModelUuid( - executeBuildingBlock.getRequestDetails().getModelInfo().getModelUuid())) - .thenReturn(vnfResourceCustomization); - when(catalogDbClient.findVnfResourceCustomizationInList(executeBuildingBlock.getBuildingBlock().getKey(), - vnfResourceCustomization)).thenReturn(vnfCust); + setBuildingBlockAndCurrentSequence(VNF_SCOPE, VNF_TEST_ACTION, VNF_MODEL_CUSTOMIZATION_ID, 0); + vnfCust.setSkipPostInstConf(false); + when(catalogDbClient.getVnfResourceCustomizationByModelCustomizationUUID(VNF_MODEL_CUSTOMIZATION_ID)) + .thenReturn(vnfCust); - // when skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution); - // then - actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - assertEquals(0, actual); - + assertEquals(0, (int) buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE)); } @Test public void testProcessForVFToSkipCDSBB() { - // given - setBuildingBlockAndCurrentSequence(VF_SCOPE, VFModule_TEST_ACTION, 0); - vfModuleCustomization = getVfModuleCustomizationList(true); - - when(catalogDbClient - .getVfModuleCustomizationByModelCuztomizationUUID(executeBuildingBlock.getBuildingBlock().getKey())) - .thenReturn(vfCust); + setBuildingBlockAndCurrentSequence(VF_SCOPE, VFModule_TEST_ACTION, VF_MODULE_CUSTOMIZATION_ID, 0); + when(catalogDbClient.getVfModuleCustomizationByModelCuztomizationUUID(VF_MODULE_CUSTOMIZATION_ID)) + .thenReturn(vfCust); - // when skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution); - // then - actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - assertEquals(1, actual); - + assertEquals(1, (int) buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE)); } @Test public void testProcessForVFNotToSkipCDSBB() { - // given - setBuildingBlockAndCurrentSequence(VF_SCOPE, VFModule_TEST_ACTION, 0); - vfModuleCustomization = getVfModuleCustomizationList(false); - + setBuildingBlockAndCurrentSequence(VF_SCOPE, VFModule_TEST_ACTION, VF_MODULE_CUSTOMIZATION_ID, 0); + vfCust.setSkipPostInstConf(false); when(catalogDbClient .getVfModuleCustomizationByModelCuztomizationUUID(executeBuildingBlock.getBuildingBlock().getKey())) .thenReturn(vfCust); - // when skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution); - // then - actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - assertEquals(0, actual); - + assertEquals(0, (int) buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE)); } @Test public void testProcessForPNFToSkipCDSBB() { - // given - setBuildingBlockAndCurrentSequence(PNF_SCOPE, PNFModule_TEST_ACTION, 0); - pnfResourceCustomization = getPnfResourceCustomization(true); - - when(catalogDbClient - .getPnfResourceCustomizationByModelCustomizationUUID(executeBuildingBlock.getBuildingBlock().getKey())) - .thenReturn(pnfResourceCustomization); + setBuildingBlockAndCurrentSequence(PNF_SCOPE, PNFModule_TEST_ACTION, PNF_CUSTOMIZATION_ID, 0); + when(catalogDbClient.getPnfResourceCustomizationByModelCustomizationUUID(PNF_CUSTOMIZATION_ID)) + .thenReturn(pnfResourceCustomization); - // when skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution); - // then - actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - assertEquals(1, actual); - + assertEquals(1, (int) buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE)); } @Test public void testProcessForPNFNotToSkipCDSBB() { - // given - setBuildingBlockAndCurrentSequence(PNF_SCOPE, PNFModule_TEST_ACTION, 0); - pnfResourceCustomization = getPnfResourceCustomization(false); - - when(catalogDbClient - .getPnfResourceCustomizationByModelCustomizationUUID(executeBuildingBlock.getBuildingBlock().getKey())) - .thenReturn(pnfResourceCustomization); + setBuildingBlockAndCurrentSequence(PNF_SCOPE, PNFModule_TEST_ACTION, PNF_CUSTOMIZATION_ID, 0); + pnfResourceCustomization.setSkipPostInstConf(false); + when(catalogDbClient.getPnfResourceCustomizationByModelCustomizationUUID(PNF_CUSTOMIZATION_ID)) + .thenReturn(pnfResourceCustomization); - // when skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution); - // then - actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE); - assertEquals(0, actual); - + assertEquals(0, (int) buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE)); } /** @@ -229,37 +197,13 @@ public class SkipCDSBuildingBlockListenerTest { * @param action * @param squence */ - private void setBuildingBlockAndCurrentSequence(String scope, String action, int sequence) { + private void setBuildingBlockAndCurrentSequence(String scope, String action, String key, int sequence) { buildingBlock.setBpmnScope(scope); buildingBlock.setBpmnAction(action); buildingBlock.setBpmnFlowName("ControllerExecutionBB"); - buildingBlock.setKey(MODELCUSTOMIZATIONUUID); + buildingBlock.setKey(key); executeBuildingBlock.setBuildingBlock(buildingBlock); buildingBlockExecution.setVariable(BBConstants.G_CURRENT_SEQUENCE, sequence); - - } - - private List<VnfResourceCustomization> getVnfResourceCustomizationList(boolean setSkippost) { - List<VnfResourceCustomization> vnfResourceCustomizations = new ArrayList<>(); - vnfCust.setModelCustomizationUUID(MODELCUSTOMIZATIONUUID); - vnfCust.setSkipPostInstConf(setSkippost); - vnfResourceCustomizations.add(vnfCust); - return vnfResourceCustomizations; - } - - private List<VfModuleCustomization> getVfModuleCustomizationList(boolean setSkippost) { - List<VfModuleCustomization> vfModuleCustomizations = new ArrayList<>(); - vfCust.setModelCustomizationUUID(MODELCUSTOMIZATIONUUID); - vfCust.setSkipPostInstConf(setSkippost); - vfModuleCustomizations.add(vfCust); - return vfModuleCustomizations; - } - - private PnfResourceCustomization getPnfResourceCustomization(boolean setSkippost) { - PnfResourceCustomization pnfResourceCustomization = new PnfResourceCustomization(); - pnfResourceCustomization.setModelCustomizationUUID(MODELCUSTOMIZATIONUUID); - pnfResourceCustomization.setSkipPostInstConf(setSkippost); - return pnfResourceCustomization; } } |