diff options
Diffstat (limited to 'bpmn')
32 files changed, 1135 insertions, 553 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/generalobjects/RequestContext.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/generalobjects/RequestContext.java index d37c8d13f3..cd66e512a5 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/generalobjects/RequestContext.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/generalobjects/RequestContext.java @@ -43,7 +43,7 @@ public class RequestContext implements Serializable{ @JsonProperty("subscription-service-type") private String subscriptionServiceType; @JsonProperty("user-params") - private HashMap<String, String> userParams; + private Map<String, Object> userParams = new HashMap<>(); @JsonProperty("action") private String action; @JsonProperty("callback-url") @@ -87,10 +87,10 @@ public class RequestContext implements Serializable{ public void setSubscriptionServiceType(String subscriptionServiceType) { this.subscriptionServiceType = subscriptionServiceType; } - public HashMap<String, String> getUserParams() { + public Map<String, Object> getUserParams() { return userParams; } - public void setUserParams(HashMap<String, String> userParams) { + public void setUserParams(Map<String, Object> userParams) { this.userParams = userParams; } public String getAction() { diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java index d6597ecb1a..81a504da4a 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java @@ -355,8 +355,8 @@ public class BBInputSetupMapperLayer { return requestParams; } - protected HashMap<String,String> mapNameValueUserParams(org.onap.so.serviceinstancebeans.RequestParameters requestParameters) { - HashMap<String,String> userParamsResult = new HashMap<String,String>(); + protected Map<String,Object> mapNameValueUserParams(org.onap.so.serviceinstancebeans.RequestParameters requestParameters) { + Map<String,Object> userParamsResult = new HashMap<String,Object>(); if (requestParameters.getUserParams() != null) { List<Map<String, Object>> userParams = requestParameters.getUserParams(); for (Map<String, Object> userParamsMap : userParams) { diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java index 7e76e52959..753a354d95 100644 --- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java +++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java @@ -643,7 +643,7 @@ public class BBInputSetupMapperLayerTest { @Test public void testMapNameValueUserParams() throws IOException { RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsInput_mapReqContext.json"), RequestDetails.class); - HashMap<String,String> actual = bbInputSetupMapperLayer.mapNameValueUserParams(requestDetails.getRequestParameters()); + Map<String,Object> actual = bbInputSetupMapperLayer.mapNameValueUserParams(requestDetails.getRequestParameters()); assertTrue(actual.containsKey("name1")); assertTrue(actual.containsValue("value1")); diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVfModuleBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVfModuleBB.bpmn index 1109e9cd9d..228eaefdb9 100644 --- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVfModuleBB.bpmn +++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/AssignVfModuleBB.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:di="http://www.omg.org/spec/DD/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" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.8.2"> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/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" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0"> <bpmn:process id="AssignVfModuleBB" name="AssignVfModuleBB" isExecutable="true"> <bpmn:startEvent id="AssignVfModuleBB_Start"> <bpmn:outgoing>SequenceFlow_1xr6chl</bpmn:outgoing> @@ -18,7 +18,7 @@ <bpmn:incoming>SequenceFlow_14xl505</bpmn:incoming> </bpmn:endEvent> <bpmn:sequenceFlow id="SequenceFlow_14xl505" sourceRef="UpdateVfModuleStatus" targetRef="AssignVfModuleBB_End" /> - <bpmn:serviceTask id="UpdateVfModuleStatus" name=" AAI Update (vf module) " camunda:expression="${AAIUpdateTasks.updateOrchestrationStatusAssignedOrPendingActivationVfModule(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> + <bpmn:serviceTask id="UpdateVfModuleStatus" name=" AAI Update (vf module) " camunda:expression="${AAIUpdateTasks.updateOrchestrationStatusAssignedVfModule(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> <bpmn:incoming>SequenceFlow_1dttbxh</bpmn:incoming> <bpmn:outgoing>SequenceFlow_14xl505</bpmn:outgoing> </bpmn:serviceTask> diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/UpdateNetworkBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/UpdateNetworkBB.bpmn index 1cfb9a3860..1235469b42 100644 --- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/UpdateNetworkBB.bpmn +++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/UpdateNetworkBB.bpmn @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"> +<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.7.2" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"> <bpmn2:process id="UpdateNetworkBB" name="UpdateNetworkBB" isExecutable="true"> <bpmn2:startEvent id="UpdateNetworkBB_Start" name="Start"> <bpmn2:outgoing>SequenceFlow_074w2et</bpmn2:outgoing> </bpmn2:startEvent> <bpmn2:serviceTask id="SDNCChangeAssignNetwork" name="SDNC ChangeAssign Network" camunda:expression="${SDNCChangeAssignTasks.changeAssignNetwork(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> <bpmn2:incoming>SequenceFlow_074w2et</bpmn2:incoming> - <bpmn2:outgoing>SequenceFlow_04yezm3</bpmn2:outgoing> + <bpmn2:outgoing>SequenceFlow_0rvstwt</bpmn2:outgoing> </bpmn2:serviceTask> <bpmn2:sequenceFlow id="SequenceFlow_074w2et" sourceRef="UpdateNetworkBB_Start" targetRef="SDNCChangeAssignNetwork" /> <bpmn2:intermediateThrowEvent id="SDNC_End" name="To AAI"> - <bpmn2:incoming>SequenceFlow_04yezm3</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_1eacnem</bpmn2:incoming> <bpmn2:linkEventDefinition name="SDNC_to_AAI" /> </bpmn2:intermediateThrowEvent> - <bpmn2:sequenceFlow id="SequenceFlow_04yezm3" sourceRef="SDNCChangeAssignNetwork" targetRef="SDNC_End" /> <bpmn2:intermediateCatchEvent id="AAI_Start" name="To AAI"> <bpmn2:outgoing>SequenceFlow_1trqq6d</bpmn2:outgoing> <bpmn2:linkEventDefinition name="SDNC_to_AAI" /> @@ -38,24 +37,51 @@ <bpmn2:linkEventDefinition name="AAI_to_AIC" /> </bpmn2:intermediateThrowEvent> <bpmn2:sequenceFlow id="SequenceFlow_00xbxe7" sourceRef="QueryNetworkTableRefAAI" targetRef="AAI_End" /> - <bpmn2:intermediateCatchEvent id="AIC_Start" name="To AIC"> - <bpmn2:outgoing>SequenceFlow_196cgux</bpmn2:outgoing> + <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0y5f10a" name="To AIC"> + <bpmn2:outgoing>SequenceFlow_0qrtpcy</bpmn2:outgoing> <bpmn2:linkEventDefinition name="AAI_to_AIC" /> </bpmn2:intermediateCatchEvent> - <bpmn2:sequenceFlow id="SequenceFlow_196cgux" sourceRef="AIC_Start" targetRef="UpdateNetworkAdapter" /> - <bpmn2:serviceTask id="UpdateNetworkAdapter" name="Update Network (Network Adapter)" camunda:expression="${NetworkAdapterUpdateTasks.updateNetwork(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> - <bpmn2:incoming>SequenceFlow_196cgux</bpmn2:incoming> - <bpmn2:outgoing>SequenceFlow_0hsvgje</bpmn2:outgoing> - </bpmn2:serviceTask> - <bpmn2:sequenceFlow id="SequenceFlow_0hsvgje" sourceRef="UpdateNetworkAdapter" targetRef="UpdateNetworkAAI" /> - <bpmn2:serviceTask id="UpdateNetworkAAI" name="Update Network (AAI)" camunda:expression="${AAIUpdateTasks.updateObjectNetwork(execution.getVariable(""))}"> - <bpmn2:incoming>SequenceFlow_0hsvgje</bpmn2:incoming> - <bpmn2:outgoing>SequenceFlow_0fhfitm</bpmn2:outgoing> + <bpmn2:serviceTask id="Update_Network_AAI_ServiceTask" name="Update Network (AAI)" camunda:expression="${AAIUpdateTasks.updateNetworkUpdated(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> + <bpmn2:incoming>SequenceFlow_001ursg</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_06ei0em</bpmn2:outgoing> </bpmn2:serviceTask> <bpmn2:endEvent id="UpdateNetworkBB_End" name="End"> - <bpmn2:incoming>SequenceFlow_0fhfitm</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_06ei0em</bpmn2:incoming> </bpmn2:endEvent> - <bpmn2:sequenceFlow id="SequenceFlow_0fhfitm" sourceRef="UpdateNetworkAAI" targetRef="UpdateNetworkBB_End" /> + <bpmn2:callActivity id="CallActivity_NetworkAdapterRestV1" name="Call NetworkAdapterRestV1" calledElement="NetworkAdapterRestV1"> + <bpmn2:extensionElements> + <camunda:in source="networkAdapterRequest" target="networkAdapterRequest" /> + <camunda:out source="WorkflowException" target="WorkflowException" /> + <camunda:out source="updateNetworkResponse" target="updateNetworkResponse" /> + </bpmn2:extensionElements> + <bpmn2:incoming>SequenceFlow_07hq1eg</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_183ph5i</bpmn2:outgoing> + </bpmn2:callActivity> + <bpmn2:serviceTask id="ServiceTask_ProcessResponse" name="Process Response From Openstack" camunda:expression="${NetworkAdapterUpdateTasks.processResponseFromOpenstack(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> + <bpmn2:incoming>SequenceFlow_183ph5i</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_001ursg</bpmn2:outgoing> + </bpmn2:serviceTask> + <bpmn2:serviceTask id="Create_Network_ServiceTask" name=" AIC Update (network) " camunda:expression="${NetworkAdapterUpdateTasks.updateNetwork(InjectExecution.execute(execution, execution.getVariable("gBuildingBlockExecution")))}"> + <bpmn2:incoming>SequenceFlow_0qrtpcy</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_07hq1eg</bpmn2:outgoing> + </bpmn2:serviceTask> + <bpmn2:sequenceFlow id="SequenceFlow_0qrtpcy" sourceRef="IntermediateCatchEvent_0y5f10a" targetRef="Create_Network_ServiceTask" /> + <bpmn2:sequenceFlow id="SequenceFlow_001ursg" sourceRef="ServiceTask_ProcessResponse" targetRef="Update_Network_AAI_ServiceTask" /> + <bpmn2:sequenceFlow id="SequenceFlow_06ei0em" sourceRef="Update_Network_AAI_ServiceTask" targetRef="UpdateNetworkBB_End" /> + <bpmn2:sequenceFlow id="SequenceFlow_07hq1eg" sourceRef="Create_Network_ServiceTask" targetRef="CallActivity_NetworkAdapterRestV1" /> + <bpmn2:sequenceFlow id="SequenceFlow_183ph5i" sourceRef="CallActivity_NetworkAdapterRestV1" targetRef="ServiceTask_ProcessResponse" /> + <bpmn2:callActivity id="CallActivity_sdncHandlerCallChangeAssign" name="SDNC Change Assign (network)" calledElement="SDNCHandler"> + <bpmn2:extensionElements> + <camunda:in source="SDNCRequest" target="SDNCRequest" /> + <camunda:out source="SDNCResponse" target="SDNCResponse" /> + <camunda:out source="WorkflowException" target="WorkflowException" /> + <camunda:in source="mso-request-id" target="mso-request-id" /> + </bpmn2:extensionElements> + <bpmn2:incoming>SequenceFlow_0rvstwt</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_1eacnem</bpmn2:outgoing> + </bpmn2:callActivity> + <bpmn2:sequenceFlow id="SequenceFlow_0rvstwt" sourceRef="SDNCChangeAssignNetwork" targetRef="CallActivity_sdncHandlerCallChangeAssign" /> + <bpmn2:sequenceFlow id="SequenceFlow_1eacnem" sourceRef="CallActivity_sdncHandlerCallChangeAssign" targetRef="SDNC_End" /> </bpmn2:process> <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" /> <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" /> @@ -79,18 +105,11 @@ </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_0pce3rm_di" bpmnElement="SDNC_End"> - <dc:Bounds x="487" y="77" width="36" height="36" /> + <dc:Bounds x="665" y="77" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="490" y="117" width="33" height="12" /> + <dc:Bounds x="669" y="117" width="32" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_04yezm3_di" bpmnElement="SequenceFlow_04yezm3"> - <di:waypoint xsi:type="dc:Point" x="378" y="95" /> - <di:waypoint xsi:type="dc:Point" x="487" y="95" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="432.5" y="74" width="0" height="12" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateCatchEvent_1hbb3j8_di" bpmnElement="AAI_Start"> <dc:Bounds x="144" y="215" width="36" height="36" /> <bpmndi:BPMNLabel> @@ -140,43 +159,82 @@ <dc:Bounds x="755" y="212" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="IntermediateCatchEvent_0sx0nb6_di" bpmnElement="AIC_Start"> - <dc:Bounds x="144" y="332" width="36" height="36" /> + <bpmndi:BPMNShape id="IntermediateCatchEvent_0y5f10a_di" bpmnElement="IntermediateCatchEvent_0y5f10a"> + <dc:Bounds x="144" y="384" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="146" y="372" width="34" height="12" /> + <dc:Bounds x="147" y="424" width="33" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_196cgux_di" bpmnElement="SequenceFlow_196cgux"> - <di:waypoint xsi:type="dc:Point" x="180" y="350" /> - <di:waypoint xsi:type="dc:Point" x="248" y="350" /> + <bpmndi:BPMNShape id="ServiceTask_1ltcf7v_di" bpmnElement="Update_Network_AAI_ServiceTask"> + <dc:Bounds x="806" y="362" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1nhzcte_di" bpmnElement="UpdateNetworkBB_End"> + <dc:Bounds x="983" y="384" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="169" y="329" width="90" height="12" /> + <dc:Bounds x="992" y="424" width="19" height="12" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0i66n9g_di" bpmnElement="UpdateNetworkAdapter"> - <dc:Bounds x="248" y="310" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0hsvgje_di" bpmnElement="SequenceFlow_0hsvgje"> - <di:waypoint xsi:type="dc:Point" x="348" y="350" /> - <di:waypoint xsi:type="dc:Point" x="422" y="350" /> + <bpmndi:BPMNShape id="CallActivity_1jpfzuh_di" bpmnElement="CallActivity_NetworkAdapterRestV1"> + <dc:Bounds x="445" y="362" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1kgckv9_di" bpmnElement="ServiceTask_ProcessResponse"> + <dc:Bounds x="625" y="362" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_03ywm5v_di" bpmnElement="Create_Network_ServiceTask"> + <dc:Bounds x="278" y="362" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0qrtpcy_di" bpmnElement="SequenceFlow_0qrtpcy"> + <di:waypoint xsi:type="dc:Point" x="180" y="402" /> + <di:waypoint xsi:type="dc:Point" x="229" y="402" /> + <di:waypoint xsi:type="dc:Point" x="229" y="402" /> + <di:waypoint xsi:type="dc:Point" x="278" y="402" /> <bpmndi:BPMNLabel> - <dc:Bounds x="340" y="329" width="90" height="12" /> + <dc:Bounds x="199" y="396" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1ydm5u9_di" bpmnElement="UpdateNetworkAAI"> - <dc:Bounds x="422" y="310" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0fsts2w_di" bpmnElement="UpdateNetworkBB_End"> - <dc:Bounds x="637" y="332" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_001ursg_di" bpmnElement="SequenceFlow_001ursg"> + <di:waypoint xsi:type="dc:Point" x="725" y="402" /> + <di:waypoint xsi:type="dc:Point" x="806" y="402" /> <bpmndi:BPMNLabel> - <dc:Bounds x="646" y="372" width="19" height="12" /> + <dc:Bounds x="720.5" y="381" width="0" height="12" /> </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_06ei0em_di" bpmnElement="SequenceFlow_06ei0em"> + <di:waypoint xsi:type="dc:Point" x="906" y="402" /> + <di:waypoint xsi:type="dc:Point" x="983" y="402" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="899.5" y="381" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_07hq1eg_di" bpmnElement="SequenceFlow_07hq1eg"> + <di:waypoint xsi:type="dc:Point" x="378" y="402" /> + <di:waypoint xsi:type="dc:Point" x="445" y="402" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="411.5" y="381" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_183ph5i_di" bpmnElement="SequenceFlow_183ph5i"> + <di:waypoint xsi:type="dc:Point" x="545" y="402" /> + <di:waypoint xsi:type="dc:Point" x="625" y="402" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="585" y="381" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="CallActivity_1da6ys0_di" bpmnElement="CallActivity_sdncHandlerCallChangeAssign"> + <dc:Bounds x="455" y="55" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0fhfitm_di" bpmnElement="SequenceFlow_0fhfitm"> - <di:waypoint xsi:type="dc:Point" x="522" y="350" /> - <di:waypoint xsi:type="dc:Point" x="637" y="350" /> + <bpmndi:BPMNEdge id="SequenceFlow_0rvstwt_di" bpmnElement="SequenceFlow_0rvstwt"> + <di:waypoint xsi:type="dc:Point" x="378" y="95" /> + <di:waypoint xsi:type="dc:Point" x="455" y="95" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="416.5" y="74" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1eacnem_di" bpmnElement="SequenceFlow_1eacnem"> + <di:waypoint xsi:type="dc:Point" x="555" y="95" /> + <di:waypoint xsi:type="dc:Point" x="665" y="95" /> <bpmndi:BPMNLabel> - <dc:Bounds x="535" y="329" width="90" height="12" /> + <dc:Bounds x="610" y="74" width="0" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> diff --git a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/UpdateNetworkBBTest.java b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/UpdateNetworkBBTest.java index 98e049f440..1bb065ae06 100644 --- a/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/UpdateNetworkBBTest.java +++ b/bpmn/so-bpmn-building-blocks/src/test/java/org/onap/so/bpmn/infrastructure/bpmn/subprocess/UpdateNetworkBBTest.java @@ -33,22 +33,24 @@ import org.onap.so.bpmn.common.BuildingBlockExecution; public class UpdateNetworkBBTest extends BaseBPMNTest { @Test public void updateNetworkBBTest() throws InterruptedException { + mockSubprocess("SDNCHandler", "My Mock Process Name", "GenericStub"); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("UpdateNetworkBB", variables); assertThat(processInstance).isNotNull(); assertThat(processInstance).isStarted().hasPassedInOrder( - "UpdateNetworkBB_Start", "SDNCChangeAssignNetwork", + "UpdateNetworkBB_Start", "SDNCChangeAssignNetwork", "CallActivity_sdncHandlerCallChangeAssign", "QueryVpnBindingAAI", "QueryNetworkPolicyAAI", "QueryNetworkTableRefAAI", - "UpdateNetworkAdapter", "UpdateNetworkAAI", "UpdateNetworkBB_End"); + "Create_Network_ServiceTask", "CallActivity_NetworkAdapterRestV1", "ServiceTask_ProcessResponse", "Update_Network_AAI_ServiceTask", "UpdateNetworkBB_End"); assertThat(processInstance).isEnded(); } @Test public void updateNetworkBBExceptionTest() throws Exception { + mockSubprocess("SDNCHandler", "My Mock Process Name", "GenericStub"); doThrow(new BpmnError("7000", "TESTING ERRORS")).when(aaiQueryTasks).queryNetworkVpnBinding(any(BuildingBlockExecution.class)); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("UpdateNetworkBB", variables); assertThat(processInstance).isStarted().hasPassedInOrder( - "UpdateNetworkBB_Start", "SDNCChangeAssignNetwork", + "UpdateNetworkBB_Start", "SDNCChangeAssignNetwork", "CallActivity_sdncHandlerCallChangeAssign", "QueryVpnBindingAAI") .hasNotPassed("QueryNetworkPolicyAAI", "QueryNetworkTableRefAAI", "UpdateNetworkAdapter", "UpdateNetworkAAI", "UpdateNetworkBB_End"); diff --git a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/VnfCmBase.groovy b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/VnfCmBase.groovy index 4237a8d6a4..32fc46a84f 100644 --- a/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/VnfCmBase.groovy +++ b/bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/VnfCmBase.groovy @@ -264,24 +264,8 @@ public abstract class VnfCmBase extends AbstractServiceTaskProcessor { execution.setVariable("vmIdList", vmidsArray.toString()) execution.setVariable("vserverIdList", vserveridsArray.toString()) } - } - - if (cloudRegionId != null) { - AAIUri cloudRegionUri = AAIUriFactory.createResourceUri(AAIObjectType.DEFAULT_CLOUD_REGION, cloudRegionId) - // Check if this client region exists - if (!client.exists(cloudRegionUri)) { - msoLogger.debug("Cloud Region with cloudRegionId " + cloudRegionId + " does not exist in A&AI") - exceptionUtil.buildAndThrowWorkflowException(execution, 404, "Cloud Region with cloudRegionId " + cloudRegionId + " does not exist in A&AI") - } - - AAIResultWrapper aaiRWCloud = client.get(cloudRegionUri) + } - Map<String, Object> resultCloud = aaiRWCloud.asMap() - - String aicIdentity = resultCloud.get("identity-url") - msoLogger.debug("aicIdentity from A&AI is: " + aicIdentity) - execution.setVariable("aicIdentity", aicIdentity) - } // preserve relationships if exist Optional<Relationships> relationships = aaiRW.getRelationships() @@ -825,7 +809,5 @@ public abstract class VnfCmBase extends AbstractServiceTaskProcessor { } msoLogger.trace("Exit postProcessRollback ") } - - } diff --git a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/VnfInPlaceUpdate.bpmn b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/VnfInPlaceUpdate.bpmn index 3c42320302..3663badb6e 100644 --- a/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/VnfInPlaceUpdate.bpmn +++ b/bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/VnfInPlaceUpdate.bpmn @@ -131,7 +131,7 @@ uvfm.postProcessRollback(execution)]]></bpmn2:script> </bpmn2:startEvent> <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="StartEvent_1" targetRef="PreProcessRequest" /> <bpmn2:sequenceFlow id="SequenceFlow_3" name="no" sourceRef="ExclusiveGateway_18j1ow5" targetRef="ScriptTask_10" /> - <bpmn2:sequenceFlow id="SequenceFlow_053qjfy" sourceRef="Task_1opcb4j" targetRef="Task_0vy2zge" /> + <bpmn2:sequenceFlow id="SequenceFlow_053qjfy" sourceRef="Task_1opcb4j" targetRef="Task_0op98k0" /> <bpmn2:scriptTask id="Task_1opcb4j" name="Query A&AI for VNF" scriptFormat="groovy"> <bpmn2:incoming>SequenceFlow_0y0jt4l</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_053qjfy</bpmn2:outgoing> @@ -169,8 +169,8 @@ uvfm.setVnfInMaintFlagInAAI(execution, false) ]]></bpmn2:script> </bpmn2:scriptTask> <bpmn2:scriptTask id="Task_0vy2zge" name="Check If Physical Servers Are Locked in A&AI" scriptFormat="groovy"> - <bpmn2:incoming>SequenceFlow_053qjfy</bpmn2:incoming> <bpmn2:incoming>SequenceFlow_179tyul</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_1us5byg</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_0usxnlk</bpmn2:outgoing> <bpmn2:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.* def uvfm = new VnfInPlaceUpdate() @@ -240,7 +240,7 @@ uvfm.checkIfPserversInMaintInAAI(execution) <bpmn2:outgoing>SequenceFlow_1c0vdki</bpmn2:outgoing> <bpmn2:outgoing>SequenceFlow_11o5j55</bpmn2:outgoing> </bpmn2:exclusiveGateway> - <bpmn2:sequenceFlow id="SequenceFlow_1c0vdki" name="no" sourceRef="ExclusiveGateway_1etgtgi" targetRef="Task_0eae8go" /> + <bpmn2:sequenceFlow id="SequenceFlow_1c0vdki" name="no" sourceRef="ExclusiveGateway_1etgtgi" targetRef="Task_0qa3yfr" /> <bpmn2:exclusiveGateway id="ExclusiveGateway_02tj4dw" name="Error on Upgrade Software?" default="SequenceFlow_162mm0m"> <bpmn2:incoming>SequenceFlow_1uno5rs</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_162mm0m</bpmn2:outgoing> @@ -295,13 +295,15 @@ uvfm.abortProcessing(execution)]]></bpmn2:script> <bpmn2:outgoing>SequenceFlow_1quapjx</bpmn2:outgoing> <bpmn2:outgoing>SequenceFlow_101n488</bpmn2:outgoing> <bpmn2:outgoing>SequenceFlow_021ah63</bpmn2:outgoing> + <bpmn2:outgoing>SequenceFlow_015qhj5</bpmn2:outgoing> + <bpmn2:outgoing>SequenceFlow_1xeh8rb</bpmn2:outgoing> </bpmn2:exclusiveGateway> <bpmn2:sequenceFlow id="SequenceFlow_05gpym3" name="Skip" sourceRef="ExclusiveGateway_0xlxgl0" targetRef="ExclusiveGateway_0y82zzx"> <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("disposition") == "Skip"]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> <bpmn2:sequenceFlow id="SequenceFlow_19ba94v" sourceRef="Task_0eae8go" targetRef="ExclusiveGateway_19an3h2" /> <bpmn2:sequenceFlow id="SequenceFlow_1nlqlwn" sourceRef="ExclusiveGateway_0y82zzx" targetRef="IntermediateThrowEvent_0ee7wot"> - <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "QuiesceTraffic") || + <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "Stop") || (execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "Snapshot")]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> <bpmn2:sequenceFlow id="SequenceFlow_1c022sy" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1tg549h" /> @@ -371,15 +373,6 @@ uvfm.checkIfClosedLoopDisabledInAAI(execution) <bpmn2:sequenceFlow id="SequenceFlow_0zzwdwf" sourceRef="IntermediateThrowEvent_1wdxgjm" targetRef="Task_0e313zv" /> <bpmn2:sequenceFlow id="SequenceFlow_06ajc11" name="no" sourceRef="ExclusiveGateway_0ud5uwa" targetRef="Task_0e313zv" /> <bpmn2:sequenceFlow id="SequenceFlow_179z9vl" sourceRef="Task_0n1d5f2" targetRef="ExclusiveGateway_148eo7w" /> - <bpmn2:scriptTask id="Task_0n1d5f2" name="Set VF Is Closed Loop Disabled Flag in A&AI" scriptFormat="groovy"> - <bpmn2:incoming>SequenceFlow_0du9273</bpmn2:incoming> - <bpmn2:incoming>SequenceFlow_032tm9y</bpmn2:incoming> - <bpmn2:outgoing>SequenceFlow_179z9vl</bpmn2:outgoing> - <bpmn2:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.* -def uvfm = new VnfInPlaceUpdate() -uvfm.setClosedLoopDisabledInAAI(execution, true) -]]></bpmn2:script> - </bpmn2:scriptTask> <bpmn2:sequenceFlow id="SequenceFlow_032tm9y" sourceRef="IntermediateThrowEvent_1552q1o" targetRef="Task_0n1d5f2" /> <bpmn2:intermediateCatchEvent id="IntermediateThrowEvent_1552q1o" name="To set Closed Loop Disabled"> <bpmn2:outgoing>SequenceFlow_032tm9y</bpmn2:outgoing> @@ -434,7 +427,7 @@ uvfm.setClosedLoopDisabledInAAI(execution, true) <bpmn2:outgoing>SequenceFlow_1fuaq5k</bpmn2:outgoing> <bpmn2:outgoing>SequenceFlow_04gth9f</bpmn2:outgoing> </bpmn2:exclusiveGateway> - <bpmn2:sequenceFlow id="SequenceFlow_1fuaq5k" name="no" sourceRef="ExclusiveGateway_19an3h2" targetRef="Task_1mdr1nd" /> + <bpmn2:sequenceFlow id="SequenceFlow_1fuaq5k" name="no" sourceRef="ExclusiveGateway_19an3h2" targetRef="Task_1j68pc1" /> <bpmn2:intermediateCatchEvent id="IntermediateThrowEvent_0a1s69h" name="To SnapShot"> <bpmn2:outgoing>SequenceFlow_0if6xj4</bpmn2:outgoing> <bpmn2:linkEventDefinition name="To SnapShot" /> @@ -594,11 +587,11 @@ uvfm.setClosedLoopDisabledInAAI(execution, false) (execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "Lock")]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> <bpmn2:sequenceFlow id="SequenceFlow_1ar6ikk" sourceRef="ExclusiveGateway_0y82zzx" targetRef="IntermediateThrowEvent_1p9i2bi"> - <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "UpgradePreCheck") || -(execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "QuiesceTraffic")]]></bpmn2:conditionExpression> + <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "QuiesceTraffic") || +(execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "Stop")]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> <bpmn2:sequenceFlow id="SequenceFlow_171iq7e" sourceRef="ExclusiveGateway_0y82zzx" targetRef="IntermediateThrowEvent_0rp1ax0"> - <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "Snapshot") || + <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "Start") || (execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "UpgradeBackup")]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> <bpmn2:sequenceFlow id="SequenceFlow_1553o9f" sourceRef="ExclusiveGateway_0y82zzx" targetRef="IntermediateThrowEvent_01ngkx2"> @@ -653,9 +646,9 @@ uvfm.setClosedLoopDisabledInAAI(execution, false) <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "Lock") || (execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "UpgradePreCheck")]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> - <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_1p9i2bi" name="To Quiesce Traffic"> + <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_1p9i2bi" name="To Stop VNF"> <bpmn2:incoming>SequenceFlow_1ar6ikk</bpmn2:incoming> - <bpmn2:linkEventDefinition name="To Quiesce Traffic" /> + <bpmn2:linkEventDefinition name="To Stop VNF" /> </bpmn2:intermediateThrowEvent> <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0ee7wot" name="To SnapShot"> <bpmn2:incoming>SequenceFlow_1nlqlwn</bpmn2:incoming> @@ -718,12 +711,12 @@ uvfm.setClosedLoopDisabledInAAI(execution, false) <camunda:out source="workStep" target="workStep" /> <camunda:out source="failedActivity" target="failedActivity" /> <camunda:in source="vmIdList" target="vmIdList" /> - <camunda:in source="aicIdentity" target="identityUrl" /> + <camunda:in source="identityUrl" target="identityUrl" /> <camunda:in source="controllerType" target="controllerType" /> <camunda:in source="vserverIdList" target="vserverIdList" /> </bpmn2:extensionElements> - <bpmn2:incoming>SequenceFlow_1c0vdki</bpmn2:incoming> <bpmn2:incoming>SequenceFlow_0if6xj4</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_10yw9oj</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_19ba94v</bpmn2:outgoing> </bpmn2:callActivity> <bpmn2:callActivity id="Task_1dtbnuy" name="Call APP-C VNF Lock" calledElement="AppCClient"> @@ -888,8 +881,8 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" <camunda:in source="vnfName" target="vnfName" /> <camunda:in source="controllerType" target="controllerType" /> </bpmn2:extensionElements> - <bpmn2:incoming>SequenceFlow_1fuaq5k</bpmn2:incoming> <bpmn2:incoming>SequenceFlow_1v59be9</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_0ugaydb</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_04rprct</bpmn2:outgoing> </bpmn2:callActivity> <bpmn2:callActivity id="Task_1hdg951" name="Call APP-C Upgrade Software" calledElement="AppCClient"> @@ -934,6 +927,107 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" <bpmn2:outgoing>SequenceFlow_1j81s6b</bpmn2:outgoing> <bpmn2:outgoing>SequenceFlow_0qy68ib</bpmn2:outgoing> </bpmn2:exclusiveGateway> + <bpmn2:sequenceFlow id="SequenceFlow_10yw9oj" sourceRef="ExclusiveGateway_0bd79on" targetRef="Task_0eae8go" /> + <bpmn2:intermediateCatchEvent id="IntermediateThrowEvent_10hdz40" name="To Stop VNF"> + <bpmn2:outgoing>SequenceFlow_02zphll</bpmn2:outgoing> + <bpmn2:linkEventDefinition name="To Stop VNF" /> + </bpmn2:intermediateCatchEvent> + <bpmn2:sequenceFlow id="SequenceFlow_02zphll" sourceRef="IntermediateThrowEvent_10hdz40" targetRef="Task_0qa3yfr" /> + <bpmn2:exclusiveGateway id="ExclusiveGateway_0bd79on" name="Error on Stop VNF?" default="SequenceFlow_10yw9oj"> + <bpmn2:incoming>SequenceFlow_0ayfzd3</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_10yw9oj</bpmn2:outgoing> + <bpmn2:outgoing>SequenceFlow_1qdt3ml</bpmn2:outgoing> + </bpmn2:exclusiveGateway> + <bpmn2:sequenceFlow id="SequenceFlow_0ayfzd3" sourceRef="Task_0qa3yfr" targetRef="ExclusiveGateway_0bd79on" /> + <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0u4t4eb" name="To Rainy Day Handling"> + <bpmn2:incoming>SequenceFlow_1qdt3ml</bpmn2:incoming> + <bpmn2:linkEventDefinition name="To Rainy Day Handling" /> + </bpmn2:intermediateThrowEvent> + <bpmn2:sequenceFlow id="SequenceFlow_1qdt3ml" name="yes" sourceRef="ExclusiveGateway_0bd79on" targetRef="IntermediateThrowEvent_0u4t4eb"> + <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("errorCode") != "0"]]></bpmn2:conditionExpression> + </bpmn2:sequenceFlow> + <bpmn2:callActivity id="Task_0qa3yfr" name="Call APP-C Stop VNF" calledElement="AppCClient"> + <bpmn2:extensionElements> + <camunda:in source="msoRequestId" target="msoRequestId" /> + <camunda:in source="actionStop" target="action" /> + <camunda:in source="vnfId" target="vnfId" /> + <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" /> + <camunda:in source="identityUrl" target="identityUrl" /> + <camunda:in source="controllerType" target="controllerType" /> + <camunda:out source="errorCode" target="errorCode" /> + <camunda:out source="errorText" target="errorText" /> + <camunda:out source="workStep" target="workStep" /> + <camunda:out source="failedActivity" target="failedActivity" /> + </bpmn2:extensionElements> + <bpmn2:incoming>SequenceFlow_1c0vdki</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_02zphll</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_0ayfzd3</bpmn2:outgoing> + </bpmn2:callActivity> + <bpmn2:sequenceFlow id="SequenceFlow_015qhj5" sourceRef="ExclusiveGateway_0y82zzx" targetRef="IntermediateThrowEvent_0utxo48"> + <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "UpgradePreCheck") || +(execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "QuiesceTraffic")]]></bpmn2:conditionExpression> + </bpmn2:sequenceFlow> + <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0utxo48" name="To Quiesce Traffic"> + <bpmn2:incoming>SequenceFlow_015qhj5</bpmn2:incoming> + <bpmn2:linkEventDefinition name="To Quiesce Traffic" /> + </bpmn2:intermediateThrowEvent> + <bpmn2:sequenceFlow id="SequenceFlow_1xeh8rb" sourceRef="ExclusiveGateway_0y82zzx" targetRef="IntermediateThrowEvent_034letx"> + <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[(execution.getVariable("disposition") == "Skip" && execution.getVariable("workStep") == "Snapshot") || +(execution.getVariable("disposition") == "Retry" && execution.getVariable("workStep") == "Start")]]></bpmn2:conditionExpression> + </bpmn2:sequenceFlow> + <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_034letx" name="To Start VNF"> + <bpmn2:incoming>SequenceFlow_1xeh8rb</bpmn2:incoming> + <bpmn2:linkEventDefinition name="To Start VNF" /> + </bpmn2:intermediateThrowEvent> + <bpmn2:sequenceFlow id="SequenceFlow_1c2q423" sourceRef="Task_1j68pc1" targetRef="ExclusiveGateway_1aepvyq" /> + <bpmn2:exclusiveGateway id="ExclusiveGateway_1aepvyq" name="Error on Start VNF?" default="SequenceFlow_0ugaydb"> + <bpmn2:incoming>SequenceFlow_1c2q423</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_0ugaydb</bpmn2:outgoing> + <bpmn2:outgoing>SequenceFlow_1ouddzv</bpmn2:outgoing> + </bpmn2:exclusiveGateway> + <bpmn2:sequenceFlow id="SequenceFlow_0ugaydb" name="no" sourceRef="ExclusiveGateway_1aepvyq" targetRef="Task_1mdr1nd" /> + <bpmn2:sequenceFlow id="SequenceFlow_12k801c" sourceRef="IntermediateThrowEvent_01xb76a" targetRef="Task_1j68pc1" /> + <bpmn2:sequenceFlow id="SequenceFlow_1ouddzv" name="yes" sourceRef="ExclusiveGateway_1aepvyq" targetRef="IntermediateThrowEvent_0d6k86e"> + <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("errorCode") != "0"]]></bpmn2:conditionExpression> + </bpmn2:sequenceFlow> + <bpmn2:intermediateCatchEvent id="IntermediateThrowEvent_01xb76a" name="To Start VNF"> + <bpmn2:outgoing>SequenceFlow_12k801c</bpmn2:outgoing> + <bpmn2:linkEventDefinition name="To Start VNF" /> + </bpmn2:intermediateCatchEvent> + <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0d6k86e" name="To Rainy Day Handler"> + <bpmn2:incoming>SequenceFlow_1ouddzv</bpmn2:incoming> + <bpmn2:linkEventDefinition name="To Rainy Day Handling" /> + </bpmn2:intermediateThrowEvent> + <bpmn2:callActivity id="Task_1j68pc1" name="Call APP-C Start VNF" calledElement="AppCClient"> + <bpmn2:extensionElements> + <camunda:in source="msoRequestId" target="msoRequestId" /> + <camunda:in source="actionStart" target="action" /> + <camunda:in source="vnfId" target="vnfId" /> + <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" /> + <camunda:in source="identityUrl" target="identityUrl" /> + <camunda:in source="controllerType" target="controllerType" /> + <camunda:out source="errorCode" target="errorCode" /> + <camunda:out source="errorText" target="errorText" /> + <camunda:out source="workStep" target="workStep" /> + <camunda:out source="failedActivity" target="failedActivity" /> + </bpmn2:extensionElements> + <bpmn2:incoming>SequenceFlow_1fuaq5k</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_12k801c</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_1c2q423</bpmn2:outgoing> + </bpmn2:callActivity> + <bpmn2:scriptTask id="Task_0n1d5f2" name="Set VF Is Closed Loop Disabled Flag in A&AI" scriptFormat="groovy"> + <bpmn2:incoming>SequenceFlow_0du9273</bpmn2:incoming> + <bpmn2:incoming>SequenceFlow_032tm9y</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_179z9vl</bpmn2:outgoing> + <bpmn2:script><![CDATA[import org.onap.so.bpmn.infrastructure.scripts.* +def uvfm = new VnfInPlaceUpdate() +uvfm.setClosedLoopDisabledInAAI(execution, true)]]></bpmn2:script> + </bpmn2:scriptTask> + <bpmn2:sequenceFlow id="SequenceFlow_1us5byg" sourceRef="Task_0op98k0" targetRef="Task_0vy2zge" /> + <bpmn2:serviceTask id="Task_0op98k0" name="Query Catalog DB for IdentityUrl" camunda:expression="${CloudSiteCatalogUtils.getIdentityUrlFromCloudSite(execution)}"> + <bpmn2:incoming>SequenceFlow_053qjfy</bpmn2:incoming> + <bpmn2:outgoing>SequenceFlow_1us5byg</bpmn2:outgoing> + </bpmn2:serviceTask> </bpmn2:process> <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" /> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> @@ -945,9 +1039,9 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="_BPMNShape_EndEvent_125" bpmnElement="EndEvent_1"> - <dc:Bounds x="569" y="1073" width="36" height="36" /> + <dc:Bounds x="1248" y="1096" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="568" y="1114" width="38" height="12" /> + <dc:Bounds x="1247" y="1137" width="38" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_StartEvent_50" targetElement="_BPMNShape_ScriptTask_124"> @@ -978,30 +1072,30 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_127" bpmnElement="ScriptTask_4"> - <dc:Bounds x="415" y="1051" width="100" height="80" /> + <dc:Bounds x="1094" y="1074" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_127" targetElement="_BPMNShape_EndEvent_125"> - <di:waypoint xsi:type="dc:Point" x="515" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="549" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="549" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="569" y="1091" /> + <di:waypoint xsi:type="dc:Point" x="1194" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="1228" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="1228" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="1248" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="564" y="1091" width="0" height="0" /> + <dc:Bounds x="1243" y="1114" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_133" bpmnElement="ScriptTask_10"> - <dc:Bounds x="126" y="1051" width="100" height="80" /> + <dc:Bounds x="805" y="1074" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="_BPMNShape_CallActivity_27" bpmnElement="CallActivity_1"> - <dc:Bounds x="269" y="1051" width="100" height="80" /> + <dc:Bounds x="948" y="1074" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_133" targetElement="_BPMNShape_CallActivity_27"> - <di:waypoint xsi:type="dc:Point" x="226" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="248" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="248" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="269" y="1091" /> + <di:waypoint xsi:type="dc:Point" x="905" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="927" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="927" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="948" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="263" y="1091" width="0" height="0" /> + <dc:Bounds x="942" y="1114" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="_BPMNShape_SubProcess_17" bpmnElement="SubProcess_1" isExpanded="true"> @@ -1059,12 +1153,12 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" <dc:Bounds x="748" y="1446" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_CallActivity_27" targetElement="_BPMNShape_ScriptTask_127"> - <di:waypoint xsi:type="dc:Point" x="369" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="392" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="392" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="415" y="1091" /> + <di:waypoint xsi:type="dc:Point" x="1048" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="1071" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="1071" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="1094" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="407" y="1091" width="0" height="0" /> + <dc:Bounds x="1086" y="1114" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_CallActivity_28" targetElement="_BPMNShape_EndEvent_126"> @@ -1075,25 +1169,17 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" targetElement="_BPMNShape_ScriptTask_133"> - <di:waypoint xsi:type="dc:Point" x="1459" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1561" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1561" y="989" /> - <di:waypoint xsi:type="dc:Point" x="99" y="989" /> - <di:waypoint xsi:type="dc:Point" x="99" y="1091" /> - <di:waypoint xsi:type="dc:Point" x="126" y="1091" /> + <di:waypoint xsi:type="dc:Point" x="756" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="805" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1482" y="772.5275881403734" width="12" height="12" /> + <dc:Bounds x="794" y="1090.1083303171945" width="12" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_053qjfy_di" bpmnElement="SequenceFlow_053qjfy"> <di:waypoint xsi:type="dc:Point" x="671" y="90" /> - <di:waypoint xsi:type="dc:Point" x="982" y="90" /> - <di:waypoint xsi:type="dc:Point" x="982" y="156" /> - <di:waypoint xsi:type="dc:Point" x="103" y="156" /> - <di:waypoint xsi:type="dc:Point" x="103" y="237" /> - <di:waypoint xsi:type="dc:Point" x="131" y="237" /> + <di:waypoint xsi:type="dc:Point" x="750" y="90" /> <bpmndi:BPMNLabel> - <dc:Bounds x="543" y="141" width="0" height="0" /> + <dc:Bounds x="711" y="75" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ScriptTask_08xzuox_di" bpmnElement="Task_1opcb4j"> @@ -1120,7 +1206,7 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" <dc:Bounds x="608" y="197" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_0sgm9bu_di" bpmnElement="Task_1drglpt"> - <dc:Bounds x="1058" y="760" width="100" height="80" /> + <dc:Bounds x="355" y="1074" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_16jtt5t_di" bpmnElement="Task_0vy2zge"> <dc:Bounds x="131" y="197" width="100" height="80" /> @@ -1147,24 +1233,24 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1uno5rs_di" bpmnElement="SequenceFlow_1uno5rs"> - <di:waypoint xsi:type="dc:Point" x="223" y="800" /> - <di:waypoint xsi:type="dc:Point" x="266" y="800" /> + <di:waypoint xsi:type="dc:Point" x="683" y="800" /> + <di:waypoint xsi:type="dc:Point" x="726" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="245" y="785" width="0" height="0" /> + <dc:Bounds x="706" y="785" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1c79909_di" bpmnElement="SequenceFlow_1c79909"> - <di:waypoint xsi:type="dc:Point" x="464" y="800" /> - <di:waypoint xsi:type="dc:Point" x="513" y="800" /> + <di:waypoint xsi:type="dc:Point" x="924" y="800" /> + <di:waypoint xsi:type="dc:Point" x="973" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="489" y="785" width="0" height="0" /> + <dc:Bounds x="949" y="785" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1xfbwpi_di" bpmnElement="SequenceFlow_1xfbwpi"> - <di:waypoint xsi:type="dc:Point" x="926" y="800" /> - <di:waypoint xsi:type="dc:Point" x="955" y="800" /> + <di:waypoint xsi:type="dc:Point" x="223" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="252" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="941" y="785" width="0" height="0" /> + <dc:Bounds x="238" y="1099" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_0q323wc_di" bpmnElement="ExclusiveGateway_0q323wc" isMarkerVisible="true"> @@ -1262,41 +1348,41 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1c0vdki_di" bpmnElement="SequenceFlow_1c0vdki"> <di:waypoint xsi:type="dc:Point" x="785" y="510" /> - <di:waypoint xsi:type="dc:Point" x="826" y="510" /> + <di:waypoint xsi:type="dc:Point" x="824" y="510" /> <bpmndi:BPMNLabel> - <dc:Bounds x="804" y="487" width="12" height="12" /> + <dc:Bounds x="1024" y="485" width="12" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_02tj4dw_di" bpmnElement="ExclusiveGateway_02tj4dw" isMarkerVisible="true"> - <dc:Bounds x="266" y="775" width="50" height="50" /> + <dc:Bounds x="726" y="775" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="247" y="735" width="88" height="24" /> + <dc:Bounds x="709" y="735" width="84" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_162mm0m_di" bpmnElement="SequenceFlow_162mm0m"> - <di:waypoint xsi:type="dc:Point" x="316" y="800" /> - <di:waypoint xsi:type="dc:Point" x="364" y="800" /> + <di:waypoint xsi:type="dc:Point" x="776" y="800" /> + <di:waypoint xsi:type="dc:Point" x="824" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="333" y="780" width="12" height="12" /> + <dc:Bounds x="793" y="780" width="12" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_1gn5lab_di" bpmnElement="ExclusiveGateway_1gn5lab" isMarkerVisible="true"> - <dc:Bounds x="513" y="775" width="50" height="50" /> + <dc:Bounds x="973" y="775" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="502" y="735" width="72" height="24" /> + <dc:Bounds x="962" y="735" width="72" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ExclusiveGateway_0l2z6wc_di" bpmnElement="ExclusiveGateway_0l2z6wc" isMarkerVisible="true"> - <dc:Bounds x="1195" y="775" width="50" height="50" /> + <dc:Bounds x="492" y="1089" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1183" y="728" width="73" height="36" /> + <dc:Bounds x="480" y="1042" width="73" height="36" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_12mfil6_di" bpmnElement="SequenceFlow_12mfil6"> - <di:waypoint xsi:type="dc:Point" x="1158" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1195" y="800" /> + <di:waypoint xsi:type="dc:Point" x="455" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="492" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1178" y="785" width="0" height="0" /> + <dc:Bounds x="475" y="1099" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ScriptTask_1lb0lk5_di" bpmnElement="Task_1tg549h"> @@ -1322,10 +1408,10 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_19ba94v_di" bpmnElement="SequenceFlow_19ba94v"> - <di:waypoint xsi:type="dc:Point" x="926" y="510" /> - <di:waypoint xsi:type="dc:Point" x="955" y="510" /> + <di:waypoint xsi:type="dc:Point" x="1160" y="510" /> + <di:waypoint xsi:type="dc:Point" x="1193" y="510" /> <bpmndi:BPMNLabel> - <dc:Bounds x="941" y="495" width="0" height="0" /> + <dc:Bounds x="1177" y="495" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1nlqlwn_di" bpmnElement="SequenceFlow_1nlqlwn"> @@ -1488,9 +1574,6 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" <dc:Bounds x="1165" y="222" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ScriptTask_1iio503_di" bpmnElement="Task_0n1d5f2"> - <dc:Bounds x="1046" y="197" width="100" height="80" /> - </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_032tm9y_di" bpmnElement="SequenceFlow_032tm9y"> <di:waypoint xsi:type="dc:Point" x="1096" y="308" /> <di:waypoint xsi:type="dc:Point" x="1096" y="277" /> @@ -1602,393 +1685,394 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_19an3h2_di" bpmnElement="ExclusiveGateway_19an3h2" isMarkerVisible="true"> - <dc:Bounds x="955" y="485" width="50" height="50" /> + <dc:Bounds x="1193" y="485" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="953" y="441" width="53" height="24" /> + <dc:Bounds x="1191" y="441" width="54" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1fuaq5k_di" bpmnElement="SequenceFlow_1fuaq5k"> - <di:waypoint xsi:type="dc:Point" x="1005" y="510" /> - <di:waypoint xsi:type="dc:Point" x="1064" y="510" /> + <di:waypoint xsi:type="dc:Point" x="1243" y="510" /> + <di:waypoint xsi:type="dc:Point" x="1294" y="510" /> + <di:waypoint xsi:type="dc:Point" x="1294" y="681" /> + <di:waypoint xsi:type="dc:Point" x="98" y="681" /> + <di:waypoint xsi:type="dc:Point" x="98" y="800" /> + <di:waypoint xsi:type="dc:Point" x="124" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1030" y="485" width="12" height="12" /> + <dc:Bounds x="1260" y="484.09433477074754" width="12" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateCatchEvent_199cotj_di" bpmnElement="IntermediateThrowEvent_0a1s69h"> - <dc:Bounds x="858" y="581" width="36" height="36" /> + <dc:Bounds x="1092" y="581" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="844" y="617" width="63" height="13" /> + <dc:Bounds x="1079" y="617" width="62" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0if6xj4_di" bpmnElement="SequenceFlow_0if6xj4"> - <di:waypoint xsi:type="dc:Point" x="876" y="581" /> - <di:waypoint xsi:type="dc:Point" x="876" y="550" /> + <di:waypoint xsi:type="dc:Point" x="1110" y="581" /> + <di:waypoint xsi:type="dc:Point" x="1110" y="550" /> <bpmndi:BPMNLabel> - <dc:Bounds x="891" y="565.5" width="0" height="0" /> + <dc:Bounds x="1125" y="565.5" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_04gth9f_di" bpmnElement="SequenceFlow_04gth9f"> - <di:waypoint xsi:type="dc:Point" x="980" y="535" /> - <di:waypoint xsi:type="dc:Point" x="980" y="581" /> + <di:waypoint xsi:type="dc:Point" x="1218" y="535" /> + <di:waypoint xsi:type="dc:Point" x="1218" y="581" /> <bpmndi:BPMNLabel> - <dc:Bounds x="986" y="558" width="18" height="12" /> + <dc:Bounds x="1227" y="546.6958260869565" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_1ly7m7x_di" bpmnElement="IntermediateThrowEvent_11vs7u4"> - <dc:Bounds x="962" y="581" width="36" height="36" /> + <dc:Bounds x="1200" y="581" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="945" y="617" width="69" height="24" /> + <dc:Bounds x="1184" y="617" width="68" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1v59be9_di" bpmnElement="SequenceFlow_1v59be9"> - <di:waypoint xsi:type="dc:Point" x="1114" y="581" /> - <di:waypoint xsi:type="dc:Point" x="1114" y="550" /> + <di:waypoint xsi:type="dc:Point" x="414" y="871" /> + <di:waypoint xsi:type="dc:Point" x="414" y="840" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1129" y="565.5" width="0" height="0" /> + <dc:Bounds x="429" y="856" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateCatchEvent_0gvhqjf_di" bpmnElement="IntermediateThrowEvent_162mb2a"> - <dc:Bounds x="1096" y="581" width="36" height="36" /> + <dc:Bounds x="396" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1084" y="617" width="60" height="25" /> + <dc:Bounds x="385" y="907" width="58" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ExclusiveGateway_0ssvndw_di" bpmnElement="ExclusiveGateway_0ssvndw" isMarkerVisible="true"> - <dc:Bounds x="1195.192" y="485" width="50" height="50" /> + <dc:Bounds x="495" y="775" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1177" y="439" width="85" height="24" /> + <dc:Bounds x="478" y="729" width="84" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_04rprct_di" bpmnElement="SequenceFlow_04rprct"> - <di:waypoint xsi:type="dc:Point" x="1164" y="510" /> - <di:waypoint xsi:type="dc:Point" x="1195" y="510" /> + <di:waypoint xsi:type="dc:Point" x="464" y="800" /> + <di:waypoint xsi:type="dc:Point" x="495" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1180" y="495" width="0" height="0" /> + <dc:Bounds x="480" y="785" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_14s9cw9_di" bpmnElement="IntermediateThrowEvent_1yfd3sz"> - <dc:Bounds x="1202" y="581" width="36" height="36" /> + <dc:Bounds x="502" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1185" y="617" width="69" height="24" /> + <dc:Bounds x="486" y="907" width="68" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1uceq96_di" bpmnElement="SequenceFlow_1uceq96"> - <di:waypoint xsi:type="dc:Point" x="1220" y="535" /> - <di:waypoint xsi:type="dc:Point" x="1220" y="581" /> + <di:waypoint xsi:type="dc:Point" x="520" y="825" /> + <di:waypoint xsi:type="dc:Point" x="520" y="871" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1226" y="548" width="18" height="12" /> + <dc:Bounds x="526" y="838" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0txgesu_di" bpmnElement="SequenceFlow_0txgesu"> - <di:waypoint xsi:type="dc:Point" x="1245" y="510" /> - <di:waypoint xsi:type="dc:Point" x="1286" y="510" /> - <di:waypoint xsi:type="dc:Point" x="1286" y="676" /> - <di:waypoint xsi:type="dc:Point" x="95" y="676" /> - <di:waypoint xsi:type="dc:Point" x="95" y="800" /> - <di:waypoint xsi:type="dc:Point" x="123" y="800" /> + <di:waypoint xsi:type="dc:Point" x="545" y="800" /> + <di:waypoint xsi:type="dc:Point" x="583" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1259" y="488" width="12" height="12" /> + <dc:Bounds x="559" y="778" width="12" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0trguug_di" bpmnElement="SequenceFlow_0trguug"> - <di:waypoint xsi:type="dc:Point" x="701" y="800" /> - <di:waypoint xsi:type="dc:Point" x="735" y="800" /> + <di:waypoint xsi:type="dc:Point" x="1161" y="800" /> + <di:waypoint xsi:type="dc:Point" x="1195" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="718" y="785" width="0" height="0" /> + <dc:Bounds x="1178" y="785" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_1ozuicc_di" bpmnElement="ExclusiveGateway_1ozuicc" isMarkerVisible="true"> - <dc:Bounds x="735.304" y="775" width="50" height="50" /> + <dc:Bounds x="1195" y="775" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="716" y="735" width="87" height="24" /> + <dc:Bounds x="1178" y="735" width="84" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1q3bwlt_di" bpmnElement="SequenceFlow_1q3bwlt"> - <di:waypoint xsi:type="dc:Point" x="785.304" y="800" /> - <di:waypoint xsi:type="dc:Point" x="826" y="800" /> + <di:waypoint xsi:type="dc:Point" x="1245" y="800" /> + <di:waypoint xsi:type="dc:Point" x="1290" y="800" /> + <di:waypoint xsi:type="dc:Point" x="1290" y="969" /> + <di:waypoint xsi:type="dc:Point" x="80" y="969" /> + <di:waypoint xsi:type="dc:Point" x="80" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="123" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="800" y="775" width="12" height="12" /> + <dc:Bounds x="1260" y="770.0957837465772" width="12" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_123vjyo_di" bpmnElement="ExclusiveGateway_123vjyo" isMarkerVisible="true"> - <dc:Bounds x="955" y="775" width="50" height="50" /> + <dc:Bounds x="252" y="1089" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="946" y="735" width="68" height="24" /> + <dc:Bounds x="243" y="1049" width="68" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1nr9o85_di" bpmnElement="SequenceFlow_1nr9o85"> - <di:waypoint xsi:type="dc:Point" x="1005" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1037" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1037" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1058" y="800" /> + <di:waypoint xsi:type="dc:Point" x="302" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="334" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="334" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="355" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1024" y="772" width="12" height="12" /> + <dc:Bounds x="321" y="1086" width="12" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_11ot6vh_di" bpmnElement="IntermediateThrowEvent_1nij04n"> - <dc:Bounds x="273" y="886" width="36" height="36" /> + <dc:Bounds x="733" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="256" y="921.6089999999999" width="69" height="24" /> + <dc:Bounds x="716" y="907" width="69" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1gagrha_di" bpmnElement="SequenceFlow_1gagrha"> - <di:waypoint xsi:type="dc:Point" x="291" y="825" /> - <di:waypoint xsi:type="dc:Point" x="291" y="886" /> + <di:waypoint xsi:type="dc:Point" x="751" y="825" /> + <di:waypoint xsi:type="dc:Point" x="751" y="871" /> <bpmndi:BPMNLabel> - <dc:Bounds x="297" y="845.5" width="18" height="12" /> + <dc:Bounds x="757" y="839.1147540983607" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_16igl7b_di" bpmnElement="SequenceFlow_16igl7b"> - <di:waypoint xsi:type="dc:Point" x="414" y="886" /> - <di:waypoint xsi:type="dc:Point" x="414" y="840" /> + <di:waypoint xsi:type="dc:Point" x="874" y="871" /> + <di:waypoint xsi:type="dc:Point" x="874" y="840" /> <bpmndi:BPMNLabel> - <dc:Bounds x="429" y="863" width="0" height="0" /> + <dc:Bounds x="889" y="855.5" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateCatchEvent_174wgan_di" bpmnElement="IntermediateThrowEvent_0fhmhsk"> - <dc:Bounds x="396" y="886" width="36" height="36" /> + <dc:Bounds x="856" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="384" y="922" width="59" height="24" /> + <dc:Bounds x="844" y="907" width="60" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1urpp94_di" bpmnElement="SequenceFlow_1urpp94"> - <di:waypoint xsi:type="dc:Point" x="538" y="825" /> - <di:waypoint xsi:type="dc:Point" x="538" y="886" /> + <di:waypoint xsi:type="dc:Point" x="998" y="825" /> + <di:waypoint xsi:type="dc:Point" x="998" y="871" /> <bpmndi:BPMNLabel> - <dc:Bounds x="544" y="855.5" width="18" height="12" /> + <dc:Bounds x="1004" y="846.4451837791199" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_1vi3wf9_di" bpmnElement="IntermediateThrowEvent_0vf0a28"> - <dc:Bounds x="520" y="886" width="36" height="36" /> + <dc:Bounds x="980" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="503" y="922" width="69" height="24" /> + <dc:Bounds x="963" y="907" width="69" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1c2xyhk_di" bpmnElement="SequenceFlow_1c2xyhk"> - <di:waypoint xsi:type="dc:Point" x="563" y="800" /> - <di:waypoint xsi:type="dc:Point" x="601" y="800" /> + <di:waypoint xsi:type="dc:Point" x="1023" y="800" /> + <di:waypoint xsi:type="dc:Point" x="1061" y="800" /> <bpmndi:BPMNLabel> - <dc:Bounds x="577" y="775" width="12" height="12" /> + <dc:Bounds x="1037" y="775" width="12" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateCatchEvent_165ve6q_di" bpmnElement="IntermediateThrowEvent_0pxvl24"> - <dc:Bounds x="632" y="886" width="36" height="36" /> + <dc:Bounds x="1093" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="607" y="922" width="85" height="13" /> + <dc:Bounds x="1066" y="907" width="90" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0yja56j_di" bpmnElement="SequenceFlow_0yja56j"> - <di:waypoint xsi:type="dc:Point" x="650" y="886" /> - <di:waypoint xsi:type="dc:Point" x="651" y="840" /> + <di:waypoint xsi:type="dc:Point" x="1111" y="871" /> + <di:waypoint xsi:type="dc:Point" x="1112" y="840" /> <bpmndi:BPMNLabel> - <dc:Bounds x="651" y="848" width="0" height="0" /> + <dc:Bounds x="1112" y="840.5" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1xg6pwh_di" bpmnElement="SequenceFlow_1xg6pwh"> - <di:waypoint xsi:type="dc:Point" x="760" y="825" /> - <di:waypoint xsi:type="dc:Point" x="760" y="886" /> + <di:waypoint xsi:type="dc:Point" x="1220" y="825" /> + <di:waypoint xsi:type="dc:Point" x="1220" y="871" /> <bpmndi:BPMNLabel> - <dc:Bounds x="766" y="855.5" width="18" height="12" /> + <dc:Bounds x="1226" y="846.655737704918" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_0unfhc9_di" bpmnElement="IntermediateThrowEvent_1vjqksl"> - <dc:Bounds x="742" y="886" width="36" height="36" /> + <dc:Bounds x="1202" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="725" y="922" width="69" height="24" /> + <dc:Bounds x="1185" y="907" width="69" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateCatchEvent_1om2udh_di" bpmnElement="IntermediateThrowEvent_1vwqesb"> - <dc:Bounds x="859" y="886" width="36" height="36" /> + <dc:Bounds x="156" y="1200" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="842" y="922" width="70" height="13" /> + <dc:Bounds x="137" y="1236" width="74" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1hwtq9x_di" bpmnElement="SequenceFlow_1hwtq9x"> - <di:waypoint xsi:type="dc:Point" x="877" y="886" /> - <di:waypoint xsi:type="dc:Point" x="876" y="840" /> + <di:waypoint xsi:type="dc:Point" x="174" y="1200" /> + <di:waypoint xsi:type="dc:Point" x="173" y="1154" /> <bpmndi:BPMNLabel> - <dc:Bounds x="877" y="848" width="0" height="0" /> + <dc:Bounds x="174" y="1162" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0ttowkv_di" bpmnElement="SequenceFlow_0ttowkv"> - <di:waypoint xsi:type="dc:Point" x="980" y="825" /> - <di:waypoint xsi:type="dc:Point" x="980" y="886" /> + <di:waypoint xsi:type="dc:Point" x="277" y="1139" /> + <di:waypoint xsi:type="dc:Point" x="277" y="1200" /> <bpmndi:BPMNLabel> - <dc:Bounds x="986" y="855.5" width="18" height="12" /> + <dc:Bounds x="283" y="1170" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_1u04oef_di" bpmnElement="IntermediateThrowEvent_0m9jtv2"> - <dc:Bounds x="962" y="886" width="36" height="36" /> + <dc:Bounds x="259" y="1200" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="945" y="922" width="69" height="24" /> + <dc:Bounds x="242" y="1236" width="69" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateCatchEvent_1bsxf5o_di" bpmnElement="IntermediateThrowEvent_0pk24h2"> - <dc:Bounds x="155" y="886" width="36" height="36" /> + <dc:Bounds x="615" y="871" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="143" y="922" width="59" height="25" /> + <dc:Bounds x="603" y="907" width="60" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1colra4_di" bpmnElement="SequenceFlow_1colra4"> - <di:waypoint xsi:type="dc:Point" x="173" y="886" /> - <di:waypoint xsi:type="dc:Point" x="173" y="863" /> - <di:waypoint xsi:type="dc:Point" x="173" y="863" /> - <di:waypoint xsi:type="dc:Point" x="173" y="840" /> + <di:waypoint xsi:type="dc:Point" x="633" y="871" /> + <di:waypoint xsi:type="dc:Point" x="633" y="840" /> <bpmndi:BPMNLabel> - <dc:Bounds x="188" y="863" width="0" height="0" /> + <dc:Bounds x="648" y="855.5" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_18j1ow5_di" bpmnElement="ExclusiveGateway_18j1ow5" isMarkerVisible="true"> - <dc:Bounds x="1409.304" y="775" width="50" height="50" /> + <dc:Bounds x="706" y="1089" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1396" y="724" width="75" height="36" /> + <dc:Bounds x="693" y="1038" width="75" height="36" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0u6ho2p_di" bpmnElement="SequenceFlow_0u6ho2p"> - <di:waypoint xsi:type="dc:Point" x="1245" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1275" y="800" /> + <di:waypoint xsi:type="dc:Point" x="542" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="572" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1255" y="775" width="12" height="12" /> + <dc:Bounds x="552" y="1089" width="12" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ScriptTask_08r89q9_di" bpmnElement="Task_0y1h8go"> - <dc:Bounds x="1275" y="760" width="100" height="80" /> + <dc:Bounds x="572" y="1074" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1tzax6l_di" bpmnElement="SequenceFlow_1tzax6l"> - <di:waypoint xsi:type="dc:Point" x="1375" y="800" /> - <di:waypoint xsi:type="dc:Point" x="1409" y="800" /> + <di:waypoint xsi:type="dc:Point" x="672" y="1114" /> + <di:waypoint xsi:type="dc:Point" x="706" y="1114" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1392" y="775" width="0" height="0" /> + <dc:Bounds x="689" y="1089" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateCatchEvent_06j33fe_di" bpmnElement="IntermediateThrowEvent_0pmevcz"> - <dc:Bounds x="1090" y="886" width="36" height="36" /> + <dc:Bounds x="387" y="1200" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1072" y="922" width="72" height="25" /> + <dc:Bounds x="370" y="1236" width="70" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_16ff86u_di" bpmnElement="SequenceFlow_16ff86u"> - <di:waypoint xsi:type="dc:Point" x="1108" y="886" /> - <di:waypoint xsi:type="dc:Point" x="1108" y="840" /> + <di:waypoint xsi:type="dc:Point" x="405" y="1200" /> + <di:waypoint xsi:type="dc:Point" x="405" y="1154" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1123" y="853" width="0" height="0" /> + <dc:Bounds x="420" y="1167" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0k3zxpd_di" bpmnElement="SequenceFlow_0k3zxpd"> - <di:waypoint xsi:type="dc:Point" x="1220" y="825" /> - <di:waypoint xsi:type="dc:Point" x="1220" y="886" /> + <di:waypoint xsi:type="dc:Point" x="517" y="1139" /> + <di:waypoint xsi:type="dc:Point" x="517" y="1200" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1226" y="855.5" width="18" height="12" /> + <dc:Bounds x="523" y="1170" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_105mp22_di" bpmnElement="IntermediateThrowEvent_1awckg7"> - <dc:Bounds x="1202" y="886" width="36" height="36" /> + <dc:Bounds x="499" y="1200" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1185" y="922" width="69" height="24" /> + <dc:Bounds x="482" y="1236" width="69" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateCatchEvent_0kglv4e_di" bpmnElement="IntermediateThrowEvent_1b3smly"> - <dc:Bounds x="1307" y="886" width="36" height="36" /> + <dc:Bounds x="604" y="1200" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1285" y="922" width="79" height="25" /> + <dc:Bounds x="581" y="1236" width="82" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_09xxorv_di" bpmnElement="SequenceFlow_09xxorv"> - <di:waypoint xsi:type="dc:Point" x="1325" y="886" /> - <di:waypoint xsi:type="dc:Point" x="1325" y="840" /> + <di:waypoint xsi:type="dc:Point" x="622" y="1200" /> + <di:waypoint xsi:type="dc:Point" x="622" y="1154" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1340" y="853" width="0" height="0" /> + <dc:Bounds x="637" y="1167" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0w8mkkn_di" bpmnElement="SequenceFlow_0w8mkkn"> - <di:waypoint xsi:type="dc:Point" x="1434" y="825" /> - <di:waypoint xsi:type="dc:Point" x="1434" y="886" /> + <di:waypoint xsi:type="dc:Point" x="731" y="1139" /> + <di:waypoint xsi:type="dc:Point" x="731" y="1200" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1440" y="855.5" width="18" height="12" /> + <dc:Bounds x="737" y="1170" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_0jwgx1d_di" bpmnElement="IntermediateThrowEvent_1cw8gsw"> - <dc:Bounds x="1416" y="886" width="36" height="36" /> + <dc:Bounds x="713" y="1200" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="1399" y="922" width="69" height="24" /> + <dc:Bounds x="696" y="1236" width="69" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateCatchEvent_0zw87jy_di" bpmnElement="IntermediateThrowEvent_0x846wp"> - <dc:Bounds x="158" y="1186" width="36" height="36" /> + <dc:Bounds x="837" y="1200" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="140" y="1221.609" width="72" height="25" /> + <dc:Bounds x="819" y="1236" width="72" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_07uuj2d_di" bpmnElement="SequenceFlow_07uuj2d"> - <di:waypoint xsi:type="dc:Point" x="176" y="1186" /> - <di:waypoint xsi:type="dc:Point" x="176" y="1160" /> - <di:waypoint xsi:type="dc:Point" x="176" y="1160" /> - <di:waypoint xsi:type="dc:Point" x="176" y="1131" /> + <di:waypoint xsi:type="dc:Point" x="855" y="1200" /> + <di:waypoint xsi:type="dc:Point" x="855" y="1154" /> <bpmndi:BPMNLabel> - <dc:Bounds x="191" y="1160" width="0" height="0" /> + <dc:Bounds x="870" y="1177" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0ueoglv_di" bpmnElement="SequenceFlow_0ueoglv"> <di:waypoint xsi:type="dc:Point" x="2117" y="490" /> - <di:waypoint xsi:type="dc:Point" x="2173" y="264" /> + <di:waypoint xsi:type="dc:Point" x="2168" y="266" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2145" y="362" width="0" height="0" /> + <dc:Bounds x="2143" y="363" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_15fqlwe_di" bpmnElement="SequenceFlow_15fqlwe"> - <di:waypoint xsi:type="dc:Point" x="2120" y="493" /> - <di:waypoint xsi:type="dc:Point" x="2209" y="290" /> + <di:waypoint xsi:type="dc:Point" x="2119" y="492" /> + <di:waypoint xsi:type="dc:Point" x="2194" y="302" /> + <di:waypoint xsi:type="dc:Point" x="2201" y="283" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2165" y="377" width="0" height="0" /> + <dc:Bounds x="2157" y="382" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0yuj0l5_di" bpmnElement="SequenceFlow_0yuj0l5"> - <di:waypoint xsi:type="dc:Point" x="2122" y="495" /> - <di:waypoint xsi:type="dc:Point" x="2247" y="319" /> + <di:waypoint xsi:type="dc:Point" x="2121" y="494" /> + <di:waypoint xsi:type="dc:Point" x="2234" y="304" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2185" y="392" width="0" height="0" /> + <dc:Bounds x="2178" y="384" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1abb030_di" bpmnElement="SequenceFlow_1abb030"> - <di:waypoint xsi:type="dc:Point" x="2125" y="498" /> - <di:waypoint xsi:type="dc:Point" x="2284" y="348" /> + <di:waypoint xsi:type="dc:Point" x="2123" y="496" /> + <di:waypoint xsi:type="dc:Point" x="2268" y="329" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2205" y="408" width="0" height="0" /> + <dc:Bounds x="2196" y="397.5" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0ls3ej5_di" bpmnElement="SequenceFlow_0ls3ej5"> - <di:waypoint xsi:type="dc:Point" x="2127" y="500" /> - <di:waypoint xsi:type="dc:Point" x="2313" y="386" /> + <di:waypoint xsi:type="dc:Point" x="2125" y="498" /> + <di:waypoint xsi:type="dc:Point" x="2293" y="363" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2220" y="428" width="0" height="0" /> + <dc:Bounds x="2209" y="415.5" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1ar6ikk_di" bpmnElement="SequenceFlow_1ar6ikk"> <di:waypoint xsi:type="dc:Point" x="2133" y="506" /> - <di:waypoint xsi:type="dc:Point" x="2372" y="460" /> + <di:waypoint xsi:type="dc:Point" x="2372" y="462" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2253" y="468" width="0" height="0" /> + <dc:Bounds x="2253" y="469" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_171iq7e_di" bpmnElement="SequenceFlow_171iq7e"> - <di:waypoint xsi:type="dc:Point" x="2134" y="513" /> - <di:waypoint xsi:type="dc:Point" x="2372" y="553" /> + <di:waypoint xsi:type="dc:Point" x="2132" y="515" /> + <di:waypoint xsi:type="dc:Point" x="2363" y="585" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2253" y="518" width="0" height="0" /> + <dc:Bounds x="2248" y="535" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1553o9f_di" bpmnElement="SequenceFlow_1553o9f"> - <di:waypoint xsi:type="dc:Point" x="2129" y="518" /> - <di:waypoint xsi:type="dc:Point" x="2353" y="595" /> + <di:waypoint xsi:type="dc:Point" x="2128" y="519" /> + <di:waypoint xsi:type="dc:Point" x="2335" y="623" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2241" y="541.5" width="0" height="0" /> + <dc:Bounds x="2232" y="556" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0dmxwel_di" bpmnElement="SequenceFlow_0dmxwel"> - <di:waypoint xsi:type="dc:Point" x="2125" y="522" /> - <di:waypoint xsi:type="dc:Point" x="2294" y="685" /> + <di:waypoint xsi:type="dc:Point" x="2124" y="523" /> + <di:waypoint xsi:type="dc:Point" x="2281" y="692" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2210" y="588.5" width="0" height="0" /> + <dc:Bounds x="2203" y="592.5" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1id2p8y_di" bpmnElement="SequenceFlow_1id2p8y"> @@ -2020,52 +2104,52 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_17syve1_di" bpmnElement="IntermediateThrowEvent_0rz6jh4"> - <dc:Bounds x="2159" y="229" width="36" height="36" /> + <dc:Bounds x="2150" y="230" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2165" y="189" width="84" height="36" /> + <dc:Bounds x="2156" y="190" width="84" height="36" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_0nv8aic_di" bpmnElement="IntermediateThrowEvent_1wip9vc"> - <dc:Bounds x="2199" y="256" width="36" height="36" /> + <dc:Bounds x="2189" y="249" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2213" y="235" width="89" height="24" /> + <dc:Bounds x="2203" y="228" width="89" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_1g4pmwc_di" bpmnElement="IntermediateThrowEvent_1hki8xj"> - <dc:Bounds x="2240" y="287" width="36" height="36" /> + <dc:Bounds x="2227" y="273" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2280" y="256" width="64" height="36" /> + <dc:Bounds x="2267" y="242" width="64" height="36" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_1ypnogn_di" bpmnElement="IntermediateThrowEvent_1gfnt9b"> - <dc:Bounds x="2279" y="319" width="36" height="36" /> + <dc:Bounds x="2263" y="299" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2325" y="305" width="71" height="24" /> + <dc:Bounds x="2309" y="285" width="71" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_1i9ttzs_di" bpmnElement="IntermediateThrowEvent_1gzhs1a"> - <dc:Bounds x="2311" y="359" width="36" height="36" /> + <dc:Bounds x="2289" y="334" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2357" y="356" width="64" height="12" /> + <dc:Bounds x="2335" y="331" width="64" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_0840e02_di" bpmnElement="IntermediateThrowEvent_0385ons"> - <dc:Bounds x="2343" y="392" width="36" height="36" /> + <dc:Bounds x="2324" y="362" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2393" y="383" width="60" height="24" /> + <dc:Bounds x="2374" y="353" width="60" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1quapjx_di" bpmnElement="SequenceFlow_1quapjx"> - <di:waypoint xsi:type="dc:Point" x="2130" y="503" /> - <di:waypoint xsi:type="dc:Point" x="2345" y="416" /> + <di:waypoint xsi:type="dc:Point" x="2128" y="501" /> + <di:waypoint xsi:type="dc:Point" x="2326" y="389" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2239" y="445" width="0" height="0" /> + <dc:Bounds x="2227" y="430" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateThrowEvent_1xq4kx8_di" bpmnElement="IntermediateThrowEvent_1p9i2bi"> - <dc:Bounds x="2371" y="439" width="36" height="36" /> + <dc:Bounds x="2371" y="441" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2412" y="440" width="90" height="12" /> + <dc:Bounds x="2419" y="444" width="62" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_03b4y60_di" bpmnElement="IntermediateThrowEvent_0ee7wot"> @@ -2075,21 +2159,21 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_1ghdnpx_di" bpmnElement="IntermediateThrowEvent_0rp1ax0"> - <dc:Bounds x="2371" y="538" width="36" height="36" /> + <dc:Bounds x="2362" y="572" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2424" y="544" width="60" height="24" /> + <dc:Bounds x="2415" y="578" width="60" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_1nls1oo_di" bpmnElement="IntermediateThrowEvent_01ngkx2"> - <dc:Bounds x="2352" y="582" width="36" height="36" /> + <dc:Bounds x="2333" y="612" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2401" y="587" width="60" height="24" /> + <dc:Bounds x="2382" y="617" width="60" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_0qt249a_di" bpmnElement="IntermediateThrowEvent_0lbd0cs"> - <dc:Bounds x="2289" y="679" width="36" height="36" /> + <dc:Bounds x="2276" y="686" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2337" y="706" width="90" height="12" /> + <dc:Bounds x="2324" y="713" width="90" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_0frwxx8_di" bpmnElement="IntermediateThrowEvent_1ycbds3"> @@ -2156,31 +2240,31 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="CallActivity_1y81g09_di" bpmnElement="Task_0eae8go"> - <dc:Bounds x="826" y="470" width="100" height="80" /> + <dc:Bounds x="1060" y="470" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_0n20gvh_di" bpmnElement="Task_1dtbnuy"> <dc:Bounds x="126" y="470" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_08wyi5l_di" bpmnElement="Task_1sove95"> - <dc:Bounds x="826" y="760" width="100" height="80" /> + <dc:Bounds x="123" y="1074" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_1a5n5ff_di" bpmnElement="Task_1fj63ov"> <dc:Bounds x="364" y="470" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_0mp082m_di" bpmnElement="Task_1ca5ctq"> - <dc:Bounds x="364" y="760" width="100" height="80" /> + <dc:Bounds x="824" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="IntermediateThrowEvent_07dp1m8_di" bpmnElement="IntermediateThrowEvent_1kbtw2p"> - <dc:Bounds x="2324" y="634" width="36" height="36" /> + <dc:Bounds x="2303" y="648" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2345" y="668" width="60" height="24" /> + <dc:Bounds x="2324" y="682" width="60" height="24" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_021ah63_di" bpmnElement="SequenceFlow_021ah63"> - <di:waypoint xsi:type="dc:Point" x="2127" y="520" /> - <di:waypoint xsi:type="dc:Point" x="2327" y="643" /> + <di:waypoint xsi:type="dc:Point" x="2126" y="521" /> + <di:waypoint xsi:type="dc:Point" x="2307" y="655" /> <bpmndi:BPMNLabel> - <dc:Bounds x="2227" y="566.5" width="0" height="0" /> + <dc:Bounds x="2217" y="573" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ScriptTask_1qr054i_di" bpmnElement="ScriptTask_1qr054i"> @@ -2253,13 +2337,13 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" <dc:Bounds x="600" y="470" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_1kw9f96_di" bpmnElement="Task_1mdr1nd"> - <dc:Bounds x="1064" y="470" width="100" height="80" /> + <dc:Bounds x="364" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_0d1uai9_di" bpmnElement="Task_1hdg951"> - <dc:Bounds x="123" y="760" width="100" height="80" /> + <dc:Bounds x="583" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_1onqhy5_di" bpmnElement="Task_0h2nq31"> - <dc:Bounds x="601" y="760" width="100" height="80" /> + <dc:Bounds x="1061" y="760" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ExclusiveGateway_1slvyx2_di" bpmnElement="ExclusiveGateway_1slvyx2" isMarkerVisible="true"> <dc:Bounds x="266" y="485" width="50" height="50" /> @@ -2297,6 +2381,147 @@ execution.getVariable(retryVariableName) < execution.getVariable("maxRetryCount" <bpmndi:BPMNShape id="ScriptTask_032b6ij_di" bpmnElement="Task_1mt62gu"> <dc:Bounds x="491" y="1446" width="100" height="80" /> </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_10yw9oj_di" bpmnElement="SequenceFlow_10yw9oj"> + <di:waypoint xsi:type="dc:Point" x="1006" y="510" /> + <di:waypoint xsi:type="dc:Point" x="1060" y="510" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1033" y="495" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="IntermediateCatchEvent_0mnk8wv_di" bpmnElement="IntermediateThrowEvent_10hdz40"> + <dc:Bounds x="856" y="581" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="843" y="617" width="62" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_02zphll_di" bpmnElement="SequenceFlow_02zphll"> + <di:waypoint xsi:type="dc:Point" x="874" y="581" /> + <di:waypoint xsi:type="dc:Point" x="874" y="550" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="889" y="565.5" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="ExclusiveGateway_0bd79on_di" bpmnElement="ExclusiveGateway_0bd79on" isMarkerVisible="true"> + <dc:Bounds x="955" y="485" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="946" y="447" width="68" height="24" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0ayfzd3_di" bpmnElement="SequenceFlow_0ayfzd3"> + <di:waypoint xsi:type="dc:Point" x="924" y="510" /> + <di:waypoint xsi:type="dc:Point" x="955" y="510" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="940" y="495" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="IntermediateThrowEvent_112p1kw_di" bpmnElement="IntermediateThrowEvent_0u4t4eb"> + <dc:Bounds x="962" y="581" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="945" y="617" width="69" height="24" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1qdt3ml_di" bpmnElement="SequenceFlow_1qdt3ml"> + <di:waypoint xsi:type="dc:Point" x="980" y="535" /> + <di:waypoint xsi:type="dc:Point" x="980" y="581" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="986" y="548" width="18" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="CallActivity_04cfhj4_di" bpmnElement="Task_0qa3yfr"> + <dc:Bounds x="824" y="470" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_015qhj5_di" bpmnElement="SequenceFlow_015qhj5"> + <di:waypoint xsi:type="dc:Point" x="2130" y="503" /> + <di:waypoint xsi:type="dc:Point" x="2354" y="422" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2242" y="447.5" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="IntermediateThrowEvent_1leefua_di" bpmnElement="IntermediateThrowEvent_0utxo48"> + <dc:Bounds x="2352" y="398" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2398" y="400.907" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1xeh8rb_di" bpmnElement="SequenceFlow_1xeh8rb"> + <di:waypoint xsi:type="dc:Point" x="2134" y="513" /> + <di:waypoint xsi:type="dc:Point" x="2386" y="551" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2260" y="517" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="IntermediateThrowEvent_05jik84_di" bpmnElement="IntermediateThrowEvent_034letx"> + <dc:Bounds x="2385" y="536" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="2431" y="547.9069999999999" width="63" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1c2q423_di" bpmnElement="SequenceFlow_1c2q423"> + <di:waypoint xsi:type="dc:Point" x="224" y="800" /> + <di:waypoint xsi:type="dc:Point" x="266" y="800" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="245" y="785" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="ExclusiveGateway_1aepvyq_di" bpmnElement="ExclusiveGateway_1aepvyq" isMarkerVisible="true"> + <dc:Bounds x="266" y="775" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="256" y="733" width="69" height="24" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0ugaydb_di" bpmnElement="SequenceFlow_0ugaydb"> + <di:waypoint xsi:type="dc:Point" x="316" y="800" /> + <di:waypoint xsi:type="dc:Point" x="364" y="800" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="334" y="775" width="12" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_12k801c_di" bpmnElement="SequenceFlow_12k801c"> + <di:waypoint xsi:type="dc:Point" x="174" y="871" /> + <di:waypoint xsi:type="dc:Point" x="174" y="840" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="189" y="855.5" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1ouddzv_di" bpmnElement="SequenceFlow_1ouddzv"> + <di:waypoint xsi:type="dc:Point" x="291" y="825" /> + <di:waypoint xsi:type="dc:Point" x="291" y="871" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="298" y="842" width="18" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="IntermediateCatchEvent_01iotuk_di" bpmnElement="IntermediateThrowEvent_01xb76a"> + <dc:Bounds x="156" y="871" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="142" y="907" width="63" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="IntermediateThrowEvent_05f5orq_di" bpmnElement="IntermediateThrowEvent_0d6k86e"> + <dc:Bounds x="273" y="871" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="256" y="907" width="69" height="24" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="CallActivity_1acjd9q_di" bpmnElement="Task_1j68pc1"> + <dc:Bounds x="124" y="760" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ScriptTask_19sq3od_di" bpmnElement="Task_0n1d5f2"> + <dc:Bounds x="1046" y="197" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1us5byg_di" bpmnElement="SequenceFlow_1us5byg"> + <di:waypoint xsi:type="dc:Point" x="850" y="90" /> + <di:waypoint xsi:type="dc:Point" x="982" y="90" /> + <di:waypoint xsi:type="dc:Point" x="982" y="156" /> + <di:waypoint xsi:type="dc:Point" x="103" y="156" /> + <di:waypoint xsi:type="dc:Point" x="103" y="237" /> + <di:waypoint xsi:type="dc:Point" x="131" y="237" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="543" y="141" width="0" height="0" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="ServiceTask_1jatgi1_di" bpmnElement="Task_0op98k0"> + <dc:Bounds x="750" y="50" width="100" height="80" /> + </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn2:definitions> diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java index 37e1a93044..34598ef00a 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import org.onap.so.adapters.nwrest.CreateNetworkResponse; +import org.onap.so.adapters.nwrest.UpdateNetworkResponse; import org.onap.so.bpmn.common.BuildingBlockExecution; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection; @@ -338,7 +339,7 @@ public class AAIUpdateTasks { } /** - * BPMN access method to update L3Network after it was created in AIC + * BPMN access method to update L3Network after it was created in cloud * @param execution * @throws Exception */ @@ -379,6 +380,34 @@ public class AAIUpdateTasks { } } + /** + * BPMN access method to update L3Network after it was updated in cloud + * @param execution + * @throws Exception + */ + public void updateNetworkUpdated(BuildingBlockExecution execution) throws Exception { + L3Network l3network = extractPojosForBB.extractByKey(execution, ResourceKey.NETWORK_ID, execution.getLookupMap().get(ResourceKey.NETWORK_ID)); + L3Network copiedl3network = l3network.shallowCopyId(); + UpdateNetworkResponse response = execution.getVariable("updateNetworkResponse"); + try { + copiedl3network.setNeutronNetworkId(response.getNeutronNetworkId()); + aaiNetworkResources.updateNetwork(copiedl3network); + + Map<String, String> subnetMap = response.getSubnetMap(); + List<Subnet> subnets = l3network.getSubnets(); + if (subnets != null && subnetMap != null){ + for (Subnet subnet: subnets){ + Subnet copiedSubnet = subnet.shallowCopyId(); + copiedSubnet.setNeutronSubnetId(subnetMap.get(copiedSubnet.getSubnetId())); + copiedSubnet.setOrchestrationStatus(OrchestrationStatus.CREATED); + aaiNetworkResources.updateSubnet(copiedl3network, copiedSubnet); + } + } + } catch (Exception ex) { + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex); + } + } + public void updateObjectNetwork(BuildingBlockExecution execution) { try { L3Network l3network = extractPojosForBB.extractByKey(execution, ResourceKey.NETWORK_ID, execution.getLookupMap().get(ResourceKey.NETWORK_ID)); diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasks.java index ee7f3697ae..61687081d9 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasks.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasks.java @@ -22,8 +22,7 @@ package org.onap.so.bpmn.infrastructure.adapter.network.tasks; -import java.util.Optional; - +import org.onap.so.adapters.nwrest.UpdateNetworkRequest; import org.onap.so.adapters.nwrest.UpdateNetworkResponse; import org.onap.so.bpmn.common.BuildingBlockExecution; import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network; @@ -31,6 +30,7 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock; import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey; import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB; +import org.onap.so.client.adapter.network.mapper.NetworkAdapterObjectMapper; import org.onap.so.client.exception.ExceptionBuilder; import org.onap.so.client.orchestration.NetworkAdapterResources; import org.slf4j.Logger; @@ -45,7 +45,7 @@ public class NetworkAdapterUpdateTasks { @Autowired private ExtractPojosForBB extractPojosForBB; @Autowired - private NetworkAdapterResources networkAdapterResources; + private NetworkAdapterObjectMapper networkAdapterObjectMapper; @Autowired private ExceptionBuilder exceptionUtil; @@ -54,14 +54,23 @@ public class NetworkAdapterUpdateTasks { GeneralBuildingBlock gBBInput = execution.getGeneralBuildingBlock(); ServiceInstance serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID, execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID)); L3Network l3Network = extractPojosForBB.extractByKey(execution, ResourceKey.NETWORK_ID, execution.getLookupMap().get(ResourceKey.NETWORK_ID)); - Optional<UpdateNetworkResponse> oUpdateNetworkResponse = networkAdapterResources.updateNetwork(gBBInput.getRequestContext(), gBBInput.getCloudRegion(), gBBInput.getOrchContext(), serviceInstance, l3Network, gBBInput.getUserInput(), gBBInput.getCustomer()); - if(oUpdateNetworkResponse.isPresent()) { - UpdateNetworkResponse updateNetworkResponse = oUpdateNetworkResponse.get(); - execution.setVariable("NetworkAdapterUpdateNetworkResponse", updateNetworkResponse); - } + UpdateNetworkRequest updateNetworkRequest = networkAdapterObjectMapper.createNetworkUpdateRequestMapper(gBBInput.getRequestContext(), gBBInput.getCloudRegion(), gBBInput.getOrchContext(), serviceInstance, l3Network, gBBInput.getUserInput(), gBBInput.getCustomer()); + execution.setVariable("networkAdapterRequest", updateNetworkRequest); + } catch(Exception ex) { exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex); } } + + public void processResponseFromOpenstack(BuildingBlockExecution execution) { + try { + UpdateNetworkResponse updateNetworkResponse = execution.getVariable("updateNetworkResponse"); + if(updateNetworkResponse == null) { + throw new Exception("No response was sent back from NetworkAdapterRestV1 subflow."); + } + } catch (Exception ex) { + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex); + } + } } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/CloudSiteCatalogUtils.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/CloudSiteCatalogUtils.java new file mode 100644 index 0000000000..bba883e727 --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/CloudSiteCatalogUtils.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.so.bpmn.infrastructure.flowspecific.tasks; + +import java.util.Optional; + +import org.camunda.bpm.engine.delegate.DelegateExecution; +import org.onap.so.client.exception.ExceptionBuilder; +import org.onap.so.db.catalog.client.CatalogDbClient; +import org.onap.so.db.catalog.beans.CloudSite; +import org.onap.so.logger.MsoLogger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class CloudSiteCatalogUtils { + + private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, CloudSiteCatalogUtils.class); + @Autowired + private ExceptionBuilder exceptionUtil; + + @Autowired + private CatalogDbClient catalogDbClient; + + + public void getIdentityUrlFromCloudSite(DelegateExecution execution) { + String cloudRegionId = (String) execution.getVariable("lcpCloudRegionId"); + + if (cloudRegionId != null) { + Optional<CloudSite> cloudSite = getCloudSite(cloudRegionId); + if (!cloudSite.isPresent()) { + msoLogger.debug("Cloud Region with cloudRegionId " + cloudRegionId + " not found in Catalog DB"); + exceptionUtil.buildAndThrowWorkflowException(execution, 404, "Cloud Region with cloudRegionId " + cloudRegionId + " not found in Catalog DB"); + } + + if (cloudSite.get().getIdentityService() == null) { + msoLogger.debug("No identityService found for Cloud Region with cloudRegionId " + cloudRegionId + " in Catalog DB"); + exceptionUtil.buildAndThrowWorkflowException(execution, 404, "No identityService found for Cloud Region with cloudRegionId " + cloudRegionId + " in Catalog DB"); + } + String identityUrl = cloudSite.get().getIdentityService().getIdentityUrl(); + + msoLogger.debug("identityUrl from Catalog DB is: " + identityUrl); + execution.setVariable("identityUrl", identityUrl); + } + } + + protected Optional<CloudSite> getCloudSite(String id) { + if (id == null) { + return Optional.empty(); + } + CloudSite cloudSite = catalogDbClient.getCloudSite(id); + + if (cloudSite != null) { + return Optional.of(cloudSite); + } else { + return(Optional.of(catalogDbClient.getCloudSiteByClliAndAicVersion(id,"2.5"))); + } + } +}
\ No newline at end of file diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapper.java index 701817ab58..2559087619 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapper.java @@ -110,8 +110,8 @@ public class VnfAdapterObjectMapper { return deleteVolumeGroupRequest; } - public Map<String, String> createVolumeGroupParams(RequestContext requestContext,GenericVnf genericVnf, VolumeGroup volumeGroup, String sdncVfModuleQueryResponse) throws JsonParseException, JsonMappingException, IOException { - Map<String, String> volumeGroupParams = new HashMap<>(); + public Map<String, Object> createVolumeGroupParams(RequestContext requestContext,GenericVnf genericVnf, VolumeGroup volumeGroup, String sdncVfModuleQueryResponse) throws JsonParseException, JsonMappingException, IOException { + Map<String, Object> volumeGroupParams = new HashMap<>(); final String USER_PARAM_NAME_KEY = "name"; final String USER_PARAM_VALUE_KEY = "value"; // sdncVfModuleQueryResponse will not be available in aLaCarte case @@ -147,7 +147,7 @@ public class VnfAdapterObjectMapper { return msoRequest; } - private void buildParamsMapFromSdncParams(Map<String,String> volumeGroupParams, GenericResourceApiParam sdncParameters) { + private void buildParamsMapFromSdncParams(Map<String,Object> volumeGroupParams, GenericResourceApiParam sdncParameters) { if (sdncParameters != null) { List<GenericResourceApiParamParam> sdncParametersList = sdncParameters.getParam(); if (sdncParametersList != null) { diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java index 352d4ec7d1..98174d59b6 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java @@ -161,7 +161,7 @@ public class VnfAdapterVfModuleObjectMapper { return msoRequest; } - private Map<String,String> buildVfModuleParamsMap(RequestContext requestContext, ServiceInstance serviceInstance, GenericVnf genericVnf, + private Map<String,Object> buildVfModuleParamsMap(RequestContext requestContext, ServiceInstance serviceInstance, GenericVnf genericVnf, VfModule vfModule, String sdncVnfQueryResponse, String sdncVfModuleQueryResponse) throws JsonParseException, JsonMappingException, IOException { @@ -169,7 +169,7 @@ public class VnfAdapterVfModuleObjectMapper { GenericResourceApiVfModuleTopology vfModuleTop = mapper.readValue(sdncVfModuleQueryResponse, GenericResourceApiVfModuleTopology.class); GenericResourceApiVnftopologyVnfTopology vnfTopology = vnfTop.getVnfTopology(); GenericResourceApiVfmoduletopologyVfModuleTopology vfModuleTopology = vfModuleTop.getVfModuleTopology(); - Map<String,String> paramsMap = new HashMap<>(); + Map<String,Object> paramsMap = new HashMap<>(); if( vfModuleTopology.getSdncGeneratedCloudResources()) { buildParamsMapFromVfModuleSdncResponse(paramsMap, vfModuleTopology, true); @@ -184,17 +184,15 @@ public class VnfAdapterVfModuleObjectMapper { buildMandatoryParamsMap(paramsMap, serviceInstance, genericVnf, vfModule); // Parameters received from the request should overwrite any parameters received from SDNC + paramsMap.putAll(requestContext.getUserParams()); - if (requestContext.getUserParams() != null) { - paramsMap.putAll(requestContext.getUserParams()); - } if (vfModule.getCloudParams() != null) { paramsMap.putAll(vfModule.getCloudParams()); } return paramsMap; } - private void buildMandatoryParamsMap(Map<String,String> paramsMap, ServiceInstance serviceInstance, GenericVnf genericVnf, VfModule vfModule) { + private void buildMandatoryParamsMap(Map<String,Object> paramsMap, ServiceInstance serviceInstance, GenericVnf genericVnf, VfModule vfModule) { paramsMap.put("vnf_id", genericVnf.getVnfId()); paramsMap.put("vnf_name", genericVnf.getVnfName()); paramsMap.put("vf_module_id", vfModule.getVfModuleId()); @@ -209,7 +207,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildParamsMapFromVnfSdncResponse(Map<String,String> paramsMap, GenericResourceApiVnftopologyVnfTopology vnfTopology, Map<String,String> networkRoleMap, boolean skipVnfResourceAssignments) throws JsonParseException, JsonMappingException, IOException { + private void buildParamsMapFromVnfSdncResponse(Map<String,Object> paramsMap, GenericResourceApiVnftopologyVnfTopology vnfTopology, Map<String,String> networkRoleMap, boolean skipVnfResourceAssignments) throws JsonParseException, JsonMappingException, IOException { // Get VNF parameters from SDNC response GenericResourceApiParam vnfParametersData = vnfTopology.getVnfParametersData(); buildParamsMapFromSdncParams(paramsMap, vnfParametersData); @@ -225,7 +223,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildAvailabilityZones (Map<String,String> paramsMap, GenericResourceApiVnfresourceassignmentsVnfResourceAssignments vnfResourceAssignments) { + private void buildAvailabilityZones (Map<String,Object> paramsMap, GenericResourceApiVnfresourceassignmentsVnfResourceAssignments vnfResourceAssignments) { GenericResourceApiVnfresourceassignmentsVnfresourceassignmentsAvailabilityZones availabilityZones = vnfResourceAssignments.getAvailabilityZones(); if (availabilityZones != null) { List<String> availabilityZonesList = availabilityZones.getAvailabilityZone(); @@ -237,7 +235,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildVnfNetworks (Map<String,String> paramsMap, GenericResourceApiVnfresourceassignmentsVnfResourceAssignments vnfResourceAssignments, Map<String,String> networkRoleMap) { + private void buildVnfNetworks (Map<String,Object> paramsMap, GenericResourceApiVnfresourceassignmentsVnfResourceAssignments vnfResourceAssignments, Map<String,String> networkRoleMap) { GenericResourceApiVnfresourceassignmentsVnfresourceassignmentsVnfNetworks vnfNetworks = vnfResourceAssignments.getVnfNetworks(); if (vnfNetworks != null) { List<GenericResourceApiVnfNetworkData> vnfNetworksList = vnfNetworks.getVnfNetwork(); @@ -264,7 +262,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildVnfNetworkSubnets(Map<String,String> paramsMap, GenericResourceApiVnfNetworkData vnfNetwork, String vnfNetworkKey) { + private void buildVnfNetworkSubnets(Map<String,Object> paramsMap, GenericResourceApiVnfNetworkData vnfNetwork, String vnfNetworkKey) { String vnfNetworkString = convertToString(vnfNetwork); Optional<String> ipv4Ips = jsonPath.locateResult(vnfNetworkString, "$.subnets-data.subnet-data[*].[?(@.ip-version == 'ipv4' && @.dhcp-enabled == 'Y')].subnet-id"); if(ipv4Ips.isPresent()) @@ -275,7 +273,7 @@ public class VnfAdapterVfModuleObjectMapper { addPairToMap(paramsMap, vnfNetworkKey, V6_SUBNET_ID, ipv6Ips.get()); } - private void buildParamsMapFromVfModuleSdncResponse(Map<String,String> paramsMap, GenericResourceApiVfmoduletopologyVfModuleTopology vfModuleTopology, boolean skipVfModuleAssignments) throws JsonParseException, JsonMappingException, IOException { + private void buildParamsMapFromVfModuleSdncResponse(Map<String,Object> paramsMap, GenericResourceApiVfmoduletopologyVfModuleTopology vfModuleTopology, boolean skipVfModuleAssignments) throws JsonParseException, JsonMappingException, IOException { // Get VF Module parameters from SDNC response GenericResourceApiParam vfModuleParametersData = vfModuleTopology.getVfModuleParameters(); buildParamsMapFromSdncParams(paramsMap, vfModuleParametersData); @@ -322,7 +320,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - protected void buildVlanInformation(Map<String, String> paramsMap, + protected void buildVlanInformation(Map<String, Object> paramsMap, GenericResourceApiVmNetworkData network, String key, String networkKey) { String networkString = convertToString(network); @@ -352,7 +350,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildVfModuleVmNames(Map<String,String> paramsMap, GenericResourceApiVmTopologyData vm, String key) { + private void buildVfModuleVmNames(Map<String,Object> paramsMap, GenericResourceApiVmTopologyData vm, String key) { String values = ""; GenericResourceApiVmtopologydataVmNames vmNames = vm.getVmNames(); if (vmNames != null) { @@ -373,7 +371,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildVfModuleFloatingIps(Map<String,String> paramsMap, GenericResourceApiVmNetworkData network, String key, String networkKey) { + private void buildVfModuleFloatingIps(Map<String,Object> paramsMap, GenericResourceApiVmNetworkData network, String key, String networkKey) { GenericResourceApiVmnetworkdataFloatingIps floatingIps = network.getFloatingIps(); if (floatingIps != null) { List<String> floatingIpV4List = floatingIps.getFloatingIpV4(); @@ -397,7 +395,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildVfModuleInterfaceRoutePrefixes(Map<String,String> paramsMap, GenericResourceApiVmNetworkData network, String key, String networkKey) { + private void buildVfModuleInterfaceRoutePrefixes(Map<String,Object> paramsMap, GenericResourceApiVmNetworkData network, String key, String networkKey) { GenericResourceApiVmnetworkdataInterfaceRoutePrefixes interfaceRoutePrefixes = network.getInterfaceRoutePrefixes(); if (interfaceRoutePrefixes != null) { List<String> interfaceRoutePrefixesList = interfaceRoutePrefixes.getInterfaceRoutePrefix(); @@ -421,7 +419,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildVfModuleSriovParameters(Map<String,String> paramsMap, GenericResourceApiVmNetworkData network, String networkKey) { + private void buildVfModuleSriovParameters(Map<String,Object> paramsMap, GenericResourceApiVmNetworkData network, String networkKey) { // SRIOV Parameters GenericResourceApiVmnetworkdataSriovParameters sriovParameters = network.getSriovParameters(); if (sriovParameters != null) { @@ -447,7 +445,7 @@ public class VnfAdapterVfModuleObjectMapper { } } - private void buildVfModuleNetworkInformation(Map<String,String> paramsMap, GenericResourceApiVmNetworkData network, String key, String networkKey) { + private void buildVfModuleNetworkInformation(Map<String,Object> paramsMap, GenericResourceApiVmNetworkData network, String key, String networkKey) { GenericResourceApiVmnetworkdataNetworkInformationItems networkInformationItems = network.getNetworkInformationItems(); StringBuilder sbIpv4Ips = new StringBuilder(); @@ -500,7 +498,7 @@ public class VnfAdapterVfModuleObjectMapper { * Build Count of SubInterfaces, VLAN Tag, network_name, network_id, * ip_address (V4 and V6) and Floating IPs Addresses (V4 and V6) for Heat Template */ - private void buildParamsMapFromVfModuleForHeatTemplate(Map<String,String> paramsMap, GenericResourceApiVmTopologyData vm) { + private void buildParamsMapFromVfModuleForHeatTemplate(Map<String,Object> paramsMap, GenericResourceApiVmTopologyData vm) { GenericResourceApiVmtopologydataVmNames vmNames = vm.getVmNames(); if (vmNames != null) { @@ -520,7 +518,7 @@ public class VnfAdapterVfModuleObjectMapper { /* * Parse vnfcNames data to build Mapping from GenericResourceApi SDNC for Heat Template. */ - private void parseVnfcNamesData(Map<String,String> paramsMap, GenericResourceApiVmtopologydataVmnamesVnfcNames vnfcNames) { + private void parseVnfcNamesData(Map<String,Object> paramsMap, GenericResourceApiVmtopologydataVmnamesVnfcNames vnfcNames) { if (vnfcNames != null) { GenericResourceApiVnfcNetworkData vnfcNetworks = vnfcNames.getVnfcNetworks(); @@ -544,7 +542,7 @@ public class VnfAdapterVfModuleObjectMapper { * Build Count of SubInterfaces, VLAN Tag, network_name, network_id, * ip_address (V4 and V6) and Floating IPs Addresses (V4 and V6) for Heat Template */ - private void parseVnfcNetworkData(Map<String,String> paramsMap, GenericResourceApiVnfcnetworkdataVnfcNetworkData vnfcNetworkdata, int networkDataIdx) { + private void parseVnfcNetworkData(Map<String,Object> paramsMap, GenericResourceApiVnfcnetworkdataVnfcNetworkData vnfcNetworkdata, int networkDataIdx) { String vmTypeKey = vnfcNetworkdata.getVnfcType(); GenericResourceApiVnfcnetworkdataVnfcnetworkdataVnfcPorts vnfcPorts = vnfcNetworkdata.getVnfcPorts(); @@ -588,7 +586,7 @@ public class VnfAdapterVfModuleObjectMapper { * Example: fw_subint_ctrl_port_0_subintcount * */ - private void buildVfModuleSubInterfacesCount(Map<String,String> paramsMap, String keyPrefix, GenericResourceApiSubInterfaceNetworkData vnicSubInterfaces) { + private void buildVfModuleSubInterfacesCount(Map<String,Object> paramsMap, String keyPrefix, GenericResourceApiSubInterfaceNetworkData vnicSubInterfaces) { List<GenericResourceApiSubinterfacenetworkdataSubInterfaceNetworkData> subInterfaceNetworkDataList = vnicSubInterfaces.getSubInterfaceNetworkData(); @@ -614,7 +612,7 @@ public class VnfAdapterVfModuleObjectMapper { * Example: fw_0_subint_ctrl_port_0_vlan_ids * */ - protected void buildVfModuleVlanTag(Map<String,String> paramsMap, String keyPrefix, String vnicSubInterfaces) { + protected void buildVfModuleVlanTag(Map<String,Object> paramsMap, String keyPrefix, String vnicSubInterfaces) { List<String> vlanTagIds = jsonPath.locateResultList(vnicSubInterfaces, "$.sub-interface-network-data[*].vlan-tag-id"); @@ -627,7 +625,7 @@ public class VnfAdapterVfModuleObjectMapper { * Example: fw_0_subint_ctrl_port_0_net_names * */ - protected void buildVfModuleNetworkName(Map<String,String> paramsMap, String keyPrefix, String vnicSubInterfaces) { + protected void buildVfModuleNetworkName(Map<String,Object> paramsMap, String keyPrefix, String vnicSubInterfaces) { List<String> neworkNames = jsonPath.locateResultList(vnicSubInterfaces, "$.sub-interface-network-data[*].network-name"); @@ -641,7 +639,7 @@ public class VnfAdapterVfModuleObjectMapper { * Example: fw_0_subint_ctrl_port_0_net_ids * */ - protected void buildVfModuleNetworkId(Map<String,String> paramsMap, String keyPrefix, String vnicSubInterfaces) { + protected void buildVfModuleNetworkId(Map<String,Object> paramsMap, String keyPrefix, String vnicSubInterfaces) { List<String> neworkIds = jsonPath.locateResultList(vnicSubInterfaces, "$.sub-interface-network-data[*].network-id"); @@ -654,7 +652,7 @@ public class VnfAdapterVfModuleObjectMapper { * {vm-type}_{index}_subint_{network-role}_port_{index}_ip_{index} -- for ipV4 * key = vm-type, networkRoleKey = NetWork-Role */ - protected void buildVfModuleIpV4AddressHeatTemplate(Map<String,String> paramsMap, String keyPrefix, String vnicSubInterfaces) { + protected void buildVfModuleIpV4AddressHeatTemplate(Map<String,Object> paramsMap, String keyPrefix, String vnicSubInterfaces) { List<String> ipv4Ips = jsonPath.locateResultList(vnicSubInterfaces, "$.sub-interface-network-data[*].network-information-items.network-information-item[?(@.ip-version == 'ipv4')].network-ips.network-ip[*]"); @@ -672,7 +670,7 @@ public class VnfAdapterVfModuleObjectMapper { * {vm-type}_{index}_subint_{network-role}_port_{index}_v6_ip_{index} -- for ipV6 * key = vm-type, networkRoleKey = NetWork-Role */ - protected void buildVfModuleIpV6AddressHeatTemplate(Map<String,String> paramsMap, String keyPrefix, String vnicSubInterfaces) { + protected void buildVfModuleIpV6AddressHeatTemplate(Map<String,Object> paramsMap, String keyPrefix, String vnicSubInterfaces) { List<String> ipv6Ips = jsonPath.locateResultList(vnicSubInterfaces, "$.sub-interface-network-data[*].network-information-items.network-information-item[?(@.ip-version == 'ipv6')].network-ips.network-ip[*]"); @@ -688,7 +686,7 @@ public class VnfAdapterVfModuleObjectMapper { * Building Criteria : * {vm-type}_subint_{network-role}_port_{index}_floating_ip -- for ipV4 */ - protected void buildVfModuleFloatingIpV4HeatTemplate(Map<String,String> paramsMap, String keyPrefix, String vnicSubInterfaces) { + protected void buildVfModuleFloatingIpV4HeatTemplate(Map<String,Object> paramsMap, String keyPrefix, String vnicSubInterfaces) { List<String> floatingV4 = jsonPath.locateResultList(vnicSubInterfaces, "$.sub-interface-network-data[*].floating-ips.floating-ip-v4[*]"); @@ -704,7 +702,7 @@ public class VnfAdapterVfModuleObjectMapper { * Building Criteria : * {vm-type}_subint_{network-role}_port_{index}_floating_v6_ip -- for ipV6 */ - protected void buildVfModuleFloatingIpV6HeatTemplate(Map<String,String> paramsMap, String keyPrefix, String vnicSubInterfaces) { + protected void buildVfModuleFloatingIpV6HeatTemplate(Map<String,Object> paramsMap, String keyPrefix, String vnicSubInterfaces) { List<String> floatingV6 = jsonPath.locateResultList(vnicSubInterfaces, "$.sub-interface-network-data[*].floating-ips.floating-ip-v6[*]"); @@ -714,19 +712,19 @@ public class VnfAdapterVfModuleObjectMapper { addPairToMap(paramsMap, keyPrefix, FLOATING_V6_IP, floatingV6); } - protected void addPairToMap(Map<String, String> paramsMap, String keyPrefix, String key, String value) { + protected void addPairToMap(Map<String, Object> paramsMap, String keyPrefix, String key, String value) { addPairToMap(paramsMap, keyPrefix, key, Collections.singletonList(value)); } - protected void addPairToMap(Map<String, String> paramsMap, String keyPrefix, String key, List<String> value) { + protected void addPairToMap(Map<String, Object> paramsMap, String keyPrefix, String key, List<String> value) { if (!value.isEmpty()) { paramsMap.put(keyPrefix + key, Joiner.on(",").join(value)); } } - private void buildParamsMapFromSdncParams(Map<String,String> paramsMap, GenericResourceApiParam parametersData) { + private void buildParamsMapFromSdncParams(Map<String,Object> paramsMap, GenericResourceApiParam parametersData) { if (parametersData != null) { List<GenericResourceApiParamParam> paramsList = parametersData.getParam(); if (paramsList != null) { diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapper.java index 2cd0947fa8..e46c456f88 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapper.java @@ -22,16 +22,27 @@ package org.onap.so.client.sdnc.mapper; import java.net.URI; -import org.onap.sdnc.northbound.client.model.*; -import org.onap.so.bpmn.servicedecomposition.bbobjects.*; +import org.onap.sdnc.northbound.client.model.GenericResourceApiConfigurationinformationConfigurationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiGcTopologyOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiGcrequestinputGcRequestInput; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; +import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; +import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; +import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; +import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; import org.onap.so.client.sdnc.beans.SDNCSvcAction; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component(value = "sdncGCTopologyOperationRequestMapper") public class GCTopologyOperationRequestMapper { - private static final GeneralTopologyObjectMapper generalTopologyObjectMapper = new GeneralTopologyObjectMapper(); + @Autowired + private GeneralTopologyObjectMapper generalTopologyObjectMapper; public GenericResourceApiGcTopologyOperationInformation assignOrActivateVnrReqMapper(SDNCSvcAction svcAction, GenericResourceApiRequestActionEnumeration reqAction, @@ -82,5 +93,4 @@ public class GCTopologyOperationRequestMapper { } - } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapper.java index 7632831111..fedbde251e 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapper.java @@ -20,18 +20,42 @@ package org.onap.so.client.sdnc.mapper; -import org.onap.sdnc.northbound.client.model.*; -import org.onap.so.bpmn.servicedecomposition.bbobjects.*; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.onap.sdnc.northbound.client.model.GenericResourceApiConfigurationinformationConfigurationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiGcrequestinputGcRequestInput; +import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkinformationNetworkInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiOnapmodelinformationOnapModelInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiParam; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVfmoduleinformationVfModuleInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation; +import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; +import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; +import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; +import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network; +import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; +import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; +import org.onap.so.client.exception.MapperException; import org.onap.so.client.sdnc.beans.SDNCSvcAction; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.env.Environment; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import org.onap.so.client.exception.MapperException; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; @Component public class GeneralTopologyObjectMapper { + private static final Logger logger = LoggerFactory.getLogger(GeneralTopologyObjectMapper.class); + private ObjectMapper mapper = new ObjectMapper(); /* * Build GenericResourceApiRequestinformationRequestInformation @@ -194,4 +218,22 @@ public class GeneralTopologyObjectMapper { } return gcRequestInput; } + + + public String mapUserParamValue(Object value) { + if (value == null) { + return null; + } else { + if (value instanceof Map || value instanceof Set || value instanceof List) { + try { + return mapper.writeValueAsString(value); + } catch (JsonProcessingException e) { + logger.error("could not map value to string", e); + throw new IllegalArgumentException(e); + } + } else { + return value.toString(); + } + } + } } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapper.java index 2b4834af42..188a228e5d 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapper.java @@ -23,15 +23,6 @@ package org.onap.so.client.sdnc.mapper; import java.util.Map; import java.util.UUID; -import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; -import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; -import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network; -import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; -import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; -import org.onap.so.client.sdnc.beans.SDNCSvcAction; -import org.onap.so.client.sdnc.beans.SDNCSvcOperation; -import org.springframework.stereotype.Component; - import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkOperationInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkinformationNetworkInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkrequestinputNetworkRequestInput; @@ -41,6 +32,15 @@ import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnum import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; +import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; +import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; +import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network; +import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; +import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; +import org.onap.so.client.sdnc.beans.SDNCSvcAction; +import org.onap.so.client.sdnc.beans.SDNCSvcOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** * Mapper creating SDNC request @@ -49,7 +49,8 @@ import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformatio @Component public class NetworkTopologyOperationRequestMapper { - static GeneralTopologyObjectMapper generalTopologyObjectMapper = new GeneralTopologyObjectMapper(); + @Autowired + private GeneralTopologyObjectMapper generalTopologyObjectMapper; public GenericResourceApiNetworkOperationInformation reqMapper(SDNCSvcOperation svcOperation, SDNCSvcAction svcAction, GenericResourceApiRequestActionEnumeration reqAction, L3Network network, ServiceInstance serviceInstance, @@ -68,11 +69,11 @@ public class NetworkTopologyOperationRequestMapper { req.setNetworkInformation(networkInformation); if (requestContext.getUserParams() != null) { - for (Map.Entry<String, String> entry : requestContext.getUserParams().entrySet()) { + for (Map.Entry<String, Object> entry : requestContext.getUserParams().entrySet()) { GenericResourceApiParam networkInputParameters = new GenericResourceApiParam(); GenericResourceApiParamParam paramItem = new GenericResourceApiParamParam(); - paramItem.setName(entry.getKey()); - paramItem.setValue(entry.getValue()); + paramItem.setName(entry.getKey()); + paramItem.setValue(generalTopologyObjectMapper.mapUserParamValue(entry.getValue())); networkInputParameters.addParamItem(paramItem); networkRequestInput.setNetworkInputParameters(networkInputParameters); } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapper.java index 5b23707cb9..505466b22c 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapper.java @@ -23,13 +23,6 @@ package org.onap.so.client.sdnc.mapper; import java.util.Map; import java.util.UUID; -import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; -import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; -import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; -import org.onap.so.client.sdnc.beans.SDNCSvcAction; -import org.onap.so.client.sdnc.beans.SDNCSvcOperation; -import org.springframework.stereotype.Component; - import org.onap.sdnc.northbound.client.model.GenericResourceApiParam; import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam; import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; @@ -38,11 +31,19 @@ import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheader import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceOperationInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiServicerequestinputServiceRequestInput; +import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; +import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; +import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; +import org.onap.so.client.sdnc.beans.SDNCSvcAction; +import org.onap.so.client.sdnc.beans.SDNCSvcOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; @Component public class ServiceTopologyOperationMapper{ - static GeneralTopologyObjectMapper generalTopologyObjectMapper = new GeneralTopologyObjectMapper(); + @Autowired + public GeneralTopologyObjectMapper generalTopologyObjectMapper; public GenericResourceApiServiceOperationInformation reqMapper (SDNCSvcOperation svcOperation, SDNCSvcAction svcAction, GenericResourceApiRequestActionEnumeration resourceAction,ServiceInstance serviceInstance, Customer customer, RequestContext requestContext) { @@ -62,13 +63,13 @@ public class ServiceTopologyOperationMapper{ servOpInput.setServiceRequestInput(servReqInfo); if(requestContext.getUserParams()!=null){ - for (Map.Entry<String, String> entry : requestContext.getUserParams().entrySet()) { + for (Map.Entry<String, Object> entry : requestContext.getUserParams().entrySet()) { GenericResourceApiServicerequestinputServiceRequestInput serviceRequestInput = new GenericResourceApiServicerequestinputServiceRequestInput(); serviceRequestInput.setServiceInstanceName(serviceInstance.getServiceInstanceName()); GenericResourceApiParam serviceInputParameters = new GenericResourceApiParam(); GenericResourceApiParamParam paramItem = new GenericResourceApiParamParam(); paramItem.setName(entry.getKey()); - paramItem.setValue(entry.getValue()); + paramItem.setValue(generalTopologyObjectMapper.mapUserParamValue(entry.getValue())); serviceInputParameters.addParamItem(paramItem ); serviceRequestInput.serviceInputParameters(serviceInputParameters); servOpInput.setServiceRequestInput(serviceRequestInput ); diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java index 8e0072b16c..f70ac8399f 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java @@ -25,13 +25,25 @@ package org.onap.so.client.sdnc.mapper; import java.util.Map; import java.util.UUID; +import org.onap.sdnc.northbound.client.model.GenericResourceApiParam; +import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiSvcActionEnumeration; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleResponseInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVfmoduleinformationVfModuleInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVfmodulerequestinputVfModuleRequestInput; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; 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.generalobjects.RequestContext; -import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.client.exception.MapperException; import org.onap.so.client.sdnc.beans.SDNCSvcAction; import org.onap.so.client.sdnc.beans.SDNCSvcOperation; @@ -39,27 +51,17 @@ import org.onap.so.logger.MessageEnum; import org.onap.so.logger.MsoLogger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.onap.sdnc.northbound.client.model.GenericResourceApiParam; -import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam; -import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; -import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; -import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiSvcActionEnumeration; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVfmoduleinformationVfModuleInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVfmodulerequestinputVfModuleRequestInput; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleResponseInformation; - import com.fasterxml.jackson.databind.ObjectMapper; @Component public class VfModuleTopologyOperationRequestMapper { private static final Logger logger = LoggerFactory.getLogger(VfModuleTopologyOperationRequestMapper.class); - static GeneralTopologyObjectMapper generalTopologyObjectMapper = new GeneralTopologyObjectMapper(); + + @Autowired + private GeneralTopologyObjectMapper generalTopologyObjectMapper; public GenericResourceApiVfModuleOperationInformation reqMapper(SDNCSvcOperation svcOperation, SDNCSvcAction svcAction, VfModule vfModule, VolumeGroup volumeGroup, GenericVnf vnf, ServiceInstance serviceInstance, @@ -126,10 +128,10 @@ public class VfModuleTopologyOperationRequestMapper { GenericResourceApiParam vfModuleInputParameters = new GenericResourceApiParam(); if (requestContext != null && requestContext.getUserParams() != null) { - for (Map.Entry<String, String> entry : requestContext.getUserParams().entrySet()) { + for (Map.Entry<String, Object> entry : requestContext.getUserParams().entrySet()) { GenericResourceApiParamParam paramItem = new GenericResourceApiParamParam(); paramItem.setName(entry.getKey()); - paramItem.setValue(entry.getValue()); + paramItem.setValue(generalTopologyObjectMapper.mapUserParamValue(entry.getValue())); vfModuleInputParameters.addParamItem(paramItem); } } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapper.java index e860d3cc48..7de393bb2f 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapper.java @@ -26,6 +26,16 @@ import java.util.Map; import java.util.UUID; import org.apache.commons.lang.StringUtils; +import org.onap.sdnc.northbound.client.model.GenericResourceApiParam; +import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfrequestinputVnfRequestInput; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfrequestinputVnfrequestinputVnfNetworkInstanceGroupIds; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; @@ -36,23 +46,14 @@ import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup; import org.onap.so.client.sdnc.beans.SDNCSvcAction; import org.onap.so.client.sdnc.beans.SDNCSvcOperation; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.onap.sdnc.northbound.client.model.GenericResourceApiParam; -import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam; -import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; -import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; -import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfOperationInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfrequestinputVnfRequestInput; -import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfrequestinputVnfrequestinputVnfNetworkInstanceGroupIds; - @Component public class VnfTopologyOperationRequestMapper { - static GeneralTopologyObjectMapper generalTopologyObjectMapper = new GeneralTopologyObjectMapper(); + @Autowired + private GeneralTopologyObjectMapper generalTopologyObjectMapper; public GenericResourceApiVnfOperationInformation reqMapper(SDNCSvcOperation svcOperation, SDNCSvcAction svcAction, GenericResourceApiRequestActionEnumeration requestAction, GenericVnf vnf, ServiceInstance serviceInstance, @@ -84,10 +85,10 @@ public class VnfTopologyOperationRequestMapper { GenericResourceApiParam vnfInputParameters = new GenericResourceApiParam(); if (requestContext.getUserParams() != null) { - for (Map.Entry<String, String> entry : requestContext.getUserParams().entrySet()) { + for (Map.Entry<String, Object> entry : requestContext.getUserParams().entrySet()) { GenericResourceApiParamParam paramItem = new GenericResourceApiParamParam(); paramItem.setName(entry.getKey()); - paramItem.setValue(entry.getValue()); + paramItem.setValue(generalTopologyObjectMapper.mapUserParamValue(entry.getValue())); vnfInputParameters.addParamItem(paramItem); vnfRequestInput.setVnfInputParameters(vnfInputParameters); } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java index 73d7257632..a8a249f386 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java @@ -43,6 +43,7 @@ import org.mockito.ArgumentMatchers; import org.mockito.InjectMocks; import org.mockito.Mockito; import org.onap.so.adapters.nwrest.CreateNetworkResponse; +import org.onap.so.adapters.nwrest.UpdateNetworkResponse; import org.onap.so.bpmn.BaseTaskTest; import org.onap.so.bpmn.common.BuildingBlockExecution; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; @@ -456,6 +457,29 @@ public class AAIUpdateTasksTest extends BaseTaskTest{ String neutronSubnetId = createNetworkResponse.getSubnetMap().entrySet().iterator().next().getValue(); assertEquals(neutronSubnetId, network.getSubnets().get(0).getNeutronSubnetId()); } + + @Test + public void updateNetworkUpdatedTest() throws Exception { + UpdateNetworkResponse updateNetworkResponse = new UpdateNetworkResponse(); + updateNetworkResponse.setNeutronNetworkId("testNeutronNetworkId"); + HashMap<String, String> subnetMap = new HashMap<>(); + subnetMap.put("testSubnetId", "testNeutronSubnetId"); + updateNetworkResponse.setSubnetMap(subnetMap); + + network.getSubnets().add(subnet); + + execution.setVariable("updateNetworkResponse", updateNetworkResponse); + + doNothing().when(aaiNetworkResources).updateNetwork(network); + doNothing().when(aaiNetworkResources).updateSubnet(network, subnet); + + aaiUpdateTasks.updateNetworkUpdated(execution); + verify(aaiNetworkResources, times(1)).updateNetwork(network); + verify(aaiNetworkResources, times(1)).updateSubnet(network, subnet); + + String neutronSubnetId = updateNetworkResponse.getSubnetMap().entrySet().iterator().next().getValue(); + assertEquals(neutronSubnetId, network.getSubnets().get(0).getNeutronSubnetId()); + } @Test public void updateOrchestrationStatusNetworkTest() { diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasksTest.java index 9f2f2fbdcc..478c512b0a 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasksTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/network/tasks/NetworkAdapterUpdateTasksTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.times; @@ -39,6 +40,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentMatchers; import org.mockito.InjectMocks; +import org.onap.so.adapters.nwrest.CreateNetworkRequest; +import org.onap.so.adapters.nwrest.UpdateNetworkRequest; import org.onap.so.adapters.nwrest.UpdateNetworkResponse; import org.onap.so.bpmn.BaseTaskTest; import org.onap.so.bpmn.common.BuildingBlockExecution; @@ -83,35 +86,15 @@ public class NetworkAdapterUpdateTasksTest extends BaseTaskTest{ @Test public void updateNetworkTest() throws Exception { - UpdateNetworkResponse updateNetworkResponse = new UpdateNetworkResponse(); - updateNetworkResponse.setMessageId("messageId"); - updateNetworkResponse.setNetworkId("networkId"); - Optional<UpdateNetworkResponse> oUpdateNetworkResponse = Optional.of(updateNetworkResponse); - - doReturn(oUpdateNetworkResponse).when(networkAdapterResources).updateNetwork(requestContext, cloudRegion, orchestrationContext, serviceInstance, network, userInput, customer); - - networkAdapterUpdateTasks.updateNetwork(execution); - - verify(networkAdapterResources, times(1)).updateNetwork(requestContext, cloudRegion, orchestrationContext, serviceInstance, network, userInput, customer); - assertEquals(updateNetworkResponse, execution.getVariable("NetworkAdapterUpdateNetworkResponse")); - } - - @Test - public void updateNetworkNoResponseTest() throws Exception { - doReturn(Optional.empty()).when(networkAdapterResources).updateNetwork(requestContext, cloudRegion, orchestrationContext, serviceInstance, network, userInput, customer); - + String cloudRegionPo = "cloudRegionPo"; + UpdateNetworkRequest updateNetworkRequest = new UpdateNetworkRequest(); + execution.setVariable("cloudRegionPo", cloudRegionPo); + + doReturn(updateNetworkRequest).when(networkAdapterObjectMapper).createNetworkUpdateRequestMapper(isA(RequestContext.class), isA(CloudRegion.class), isA(OrchestrationContext.class), isA(ServiceInstance.class), isA(L3Network.class), isA(Map.class), isA(Customer.class)); networkAdapterUpdateTasks.updateNetwork(execution); - - verify(networkAdapterResources, times(1)).updateNetwork(requestContext, cloudRegion, orchestrationContext, serviceInstance, network, userInput, customer); - assertNull(execution.getVariable("NetworkAdapterUpdateNetworkResponse")); + verify(networkAdapterObjectMapper, times(1)).createNetworkUpdateRequestMapper(requestContext, cloudRegion, orchestrationContext, serviceInstance, network, userInput, customer); + assertEquals(updateNetworkRequest, execution.getVariable("networkAdapterRequest")); } - @Test - public void updateNetworkExceptionTest() throws UnsupportedEncodingException, NetworkAdapterClientException { - expectedException.expect(BpmnError.class); - doThrow(new NetworkAdapterClientException("ERROR")).when(networkAdapterResources).updateNetwork(any(RequestContext.class),any(CloudRegion.class), - any(OrchestrationContext.class),eq(serviceInstance),eq(network),any(Map.class),any(Customer.class)); - doThrow(new BpmnError("BPMN Error")).when(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(7000), any(Exception.class)); - networkAdapterUpdateTasks.updateNetwork(execution); - } + } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/CloudSiteCatalogUtilsTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/CloudSiteCatalogUtilsTest.java new file mode 100644 index 0000000000..125c97109c --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/CloudSiteCatalogUtilsTest.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.so.bpmn.infrastructure.flowspecific.tasks; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; +import java.util.Optional; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.onap.so.bpmn.BaseTaskTest; + +import org.onap.so.db.catalog.beans.CloudIdentity; +import org.onap.so.db.catalog.beans.CloudSite; + +public class CloudSiteCatalogUtilsTest extends BaseTaskTest { + + @InjectMocks + private CloudSiteCatalogUtils cloudSiteCatalogUtils = new CloudSiteCatalogUtils(); + + @Test + public void testGetCloudSiteGetVersion30Test() throws Exception { + CloudSite cloudSite = new CloudSite(); + String testCloudSiteId = "testCloudSiteId"; + cloudSite.setClli(testCloudSiteId); + doReturn(cloudSite).when(catalogDbClient).getCloudSite(testCloudSiteId); + Optional<CloudSite> actualCloudSite = cloudSiteCatalogUtils.getCloudSite(testCloudSiteId); + assertEquals(actualCloudSite.get().getClli(), testCloudSiteId); + } + + @Test + public void testGetCloudSiteGetVersion25Test() throws Exception { + CloudSite cloudSite = new CloudSite(); + String testCloudSiteId = "testCloudSiteId"; + cloudSite.setClli(testCloudSiteId); + doReturn(null).when(catalogDbClient).getCloudSite(testCloudSiteId); + doReturn(cloudSite).when(catalogDbClient).getCloudSiteByClliAndAicVersion(testCloudSiteId, "2.5"); + Optional<CloudSite> actualCloudSite = cloudSiteCatalogUtils.getCloudSite(testCloudSiteId); + assertEquals(actualCloudSite.get().getClli(), testCloudSiteId); + } + + @Test + public void testGetIdentityUrlFromCloudSiteSuccessTest() throws Exception { + CloudSite cloudSite = new CloudSite(); + String testCloudSiteId = "testCloudSiteId"; + String testIdentityUrl = "testIdentityUrl"; + delegateExecution.setVariable("lcpCloudRegionId", testCloudSiteId); + cloudSite.setClli(testCloudSiteId); + CloudIdentity cloudIdentity = new CloudIdentity(); + cloudIdentity.setIdentityUrl(testIdentityUrl); + cloudSite.setIdentityService(cloudIdentity); + doReturn(cloudSite).when(catalogDbClient).getCloudSite(testCloudSiteId); + cloudSiteCatalogUtils.getIdentityUrlFromCloudSite(delegateExecution); + String actualIdentityUrl = (String) delegateExecution.getVariable("identityUrl"); + assertEquals(testIdentityUrl, actualIdentityUrl); + } + + @Test + public void testGetIdentityUrlFromCloudSiteNoCloudIdProvidedTest() throws Exception { + CloudSite cloudSite = new CloudSite(); + String testCloudSiteId = "testCloudSiteId"; + String testIdentityUrl = "testIdentityUrl"; + cloudSite.setClli(testCloudSiteId); + CloudIdentity cloudIdentity = new CloudIdentity(); + cloudIdentity.setIdentityUrl(testIdentityUrl); + cloudSite.setIdentityService(cloudIdentity); + doReturn(cloudSite).when(catalogDbClient).getCloudSite(testCloudSiteId); + cloudSiteCatalogUtils.getIdentityUrlFromCloudSite(delegateExecution); + String actualIdentityUrl = (String) delegateExecution.getVariable("identityUrl"); + assertEquals(null, actualIdentityUrl); + } +} diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapperTest.java index 339e9cbf17..5169663add 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapperTest.java @@ -72,7 +72,6 @@ public class VnfAdapterObjectMapperTest { } @Test - @Ignore public void test_createVolumeGroupRequestMapper() throws Exception { RequestContext requestContext = new RequestContext(); requestContext.setMsoRequestId("msoRequestId"); @@ -123,7 +122,7 @@ public class VnfAdapterObjectMapperTest { expectedCreateVolumeGroupRequest.setVfModuleType(volumeGroup.getModelInfoVfModule().getModelName()); expectedCreateVolumeGroupRequest.setModelCustomizationUuid(volumeGroup.getModelInfoVfModule().getModelCustomizationUUID()); - Map<String, String> volumeGroupParams = new HashMap<>(); + Map<String, Object> volumeGroupParams = new HashMap<>(); volumeGroupParams.put("vnf_id", genericVnf.getVnfId()); volumeGroupParams.put("vnf_name", genericVnf.getVnfName()); volumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId()); @@ -201,7 +200,7 @@ public class VnfAdapterObjectMapperTest { expectedCreateVolumeGroupRequest.setVfModuleType(volumeGroup.getModelInfoVfModule().getModelName()); expectedCreateVolumeGroupRequest.setModelCustomizationUuid(volumeGroup.getModelInfoVfModule().getModelCustomizationUUID()); - Map<String, String> volumeGroupParams = new HashMap<>(); + Map<String, Object> volumeGroupParams = new HashMap<>(); volumeGroupParams.put("vnf_id", genericVnf.getVnfId()); volumeGroupParams.put("vnf_name", genericVnf.getVnfName()); volumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId()); @@ -285,7 +284,6 @@ public class VnfAdapterObjectMapperTest { } @Test - @Ignore public void test_createVolumeGroupParams() throws Exception { GenericVnf genericVnf = new GenericVnf(); genericVnf.setVnfId("vnfId"); @@ -308,7 +306,7 @@ public class VnfAdapterObjectMapperTest { expectedVolumeGroupParams.put("paramTwo", "paramTwoValue"); expectedVolumeGroupParams.put("paramThree", "paramThreeValue"); - Map<String, String> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,genericVnf, volumeGroup, sdncVfModuleQueryResponse); + Map<String, Object> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,genericVnf, volumeGroup, sdncVfModuleQueryResponse); assertEquals(expectedVolumeGroupParams, actualVolumeGroupParams); } @@ -329,13 +327,12 @@ public class VnfAdapterObjectMapperTest { expectedVolumeGroupParams.put("vf_module_id", volumeGroup.getVolumeGroupId()); expectedVolumeGroupParams.put("vf_module_name", volumeGroup.getVolumeGroupName()); RequestContext requestContext = new RequestContext(); - Map<String, String> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,genericVnf, volumeGroup, null); + Map<String, Object> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,genericVnf, volumeGroup, null); assertEquals(expectedVolumeGroupParams, actualVolumeGroupParams); } @Test - @Ignore public void test_createVolumeGroupParams_with_user_params() throws Exception { GenericVnf genericVnf = new GenericVnf(); genericVnf.setVnfId("vnfId"); @@ -366,7 +363,7 @@ public class VnfAdapterObjectMapperTest { expectedVolumeGroupParams.put("paramThree", "paramThreeValue"); expectedVolumeGroupParams.put("userParamKey", "userParamValue"); - Map<String, String> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,genericVnf, volumeGroup, sdncVfModuleQueryResponse); + Map<String, Object> actualVolumeGroupParams = vnfAdapterObjectMapper.createVolumeGroupParams(requestContext,genericVnf, volumeGroup, sdncVfModuleQueryResponse); assertEquals(expectedVolumeGroupParams, actualVolumeGroupParams); } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperPayloadTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperPayloadTest.java index a156c382d1..00e5c10f73 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperPayloadTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperPayloadTest.java @@ -76,7 +76,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value2"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -150,7 +150,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value2"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -223,7 +223,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value2"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -295,7 +295,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { // RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value2"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -375,7 +375,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { // RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value2"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -450,7 +450,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value2"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -521,7 +521,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -591,7 +591,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -661,7 +661,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -798,7 +798,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance); RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setMsoRequestId("requestId"); requestContext.setUserParams(userParams); @@ -853,7 +853,7 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest { String json = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "grApiVmNetworkSubSectionWith5GParams.json"))); GenericResourceApiVmNetworkData network = omapper.readValue(json, GenericResourceApiVmNetworkData.class); - Map<String, String> paramsMap = new HashMap<>(); + Map<String, Object> paramsMap = new HashMap<>(); vfModuleObjectMapper.buildVlanInformation(paramsMap, network, "testKey", "testType"); assertEquals("1,3", paramsMap.get("testKey_testType_private_vlans")); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperTest.java index 160feed426..81d30e33c5 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperTest.java @@ -67,7 +67,7 @@ public class VnfAdapterVfModuleObjectMapperTest { @Test public void addPairToMapTest() { - Map<String, String> map = new HashMap<>(); + Map<String, Object> map = new HashMap<>(); mapper.addPairToMap(map, "test", "_key", Arrays.asList("a", "b")); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/SDNCConfigurationResourcesTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/SDNCConfigurationResourcesTest.java index 4d90a3fcc9..0023066949 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/SDNCConfigurationResourcesTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/SDNCConfigurationResourcesTest.java @@ -22,9 +22,7 @@ package org.onap.so.client.orchestration; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.isA; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.times; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import java.net.URI; @@ -35,10 +33,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.Spy; import org.mockito.junit.MockitoJUnitRunner; +import org.onap.sdnc.northbound.client.model.GenericResourceApiGcTopologyOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; import org.onap.so.bpmn.common.data.TestDataSetup; +import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; @@ -47,19 +46,17 @@ import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; import org.onap.so.client.exception.BadResponseException; import org.onap.so.client.exception.MapperException; import org.onap.so.client.sdnc.SDNCClient; -import org.onap.so.client.sdnc.endpoint.SDNCTopology; +import org.onap.so.client.sdnc.beans.SDNCSvcAction; import org.onap.so.client.sdnc.mapper.GCTopologyOperationRequestMapper; -import org.onap.sdnc.northbound.client.model.GenericResourceApiGcTopologyOperationInformation; - @RunWith(MockitoJUnitRunner.Silent.class) public class SDNCConfigurationResourcesTest extends TestDataSetup{ @InjectMocks private SDNCConfigurationResources sdncConfigurationResources = new SDNCConfigurationResources(); - @Spy - GCTopologyOperationRequestMapper MOCK_gcTopologyMapper ; + @Mock + private GCTopologyOperationRequestMapper MOCK_gcTopologyMapper ; @Mock protected SDNCClient MOCK_sdncClient; @@ -82,24 +79,34 @@ public class SDNCConfigurationResourcesTest extends TestDataSetup{ @Test public void activateVnrConfigurationTest() throws BadResponseException, MapperException, URISyntaxException { GenericResourceApiGcTopologyOperationInformation response = sdncConfigurationResources.activateVnrConfiguration(serviceInstance,requestContext,customer,vpnBondingLink.getVnrConfiguration(),vnf,"uuid",new URI("http://localhost")); - assertNotNull(response); + verify(MOCK_gcTopologyMapper).assignOrActivateVnrReqMapper( + eq(SDNCSvcAction.ACTIVATE), eq(GenericResourceApiRequestActionEnumeration.CREATEGENERICCONFIGURATIONINSTANCE), + eq(serviceInstance), eq(requestContext), eq(customer), any(Configuration.class), any(GenericVnf.class), any(String.class), any(URI.class)); + } @Test public void assignVnrConfigurationTest() throws BadResponseException, MapperException, URISyntaxException { GenericResourceApiGcTopologyOperationInformation response = sdncConfigurationResources.assignVnrConfiguration(serviceInstance,requestContext,customer,vpnBondingLink.getVnrConfiguration(),vnf,"uuid",new URI("http://localhost")); - assertNotNull(response); + verify(MOCK_gcTopologyMapper).assignOrActivateVnrReqMapper( + eq(SDNCSvcAction.ASSIGN), eq(GenericResourceApiRequestActionEnumeration.CREATEGENERICCONFIGURATIONINSTANCE), + eq(serviceInstance), eq(requestContext), eq(customer), any(Configuration.class), any(GenericVnf.class), any(String.class), any(URI.class)); + } @Test public void unAssignVnrConfigurationTest() throws BadResponseException, MapperException , URISyntaxException{ GenericResourceApiGcTopologyOperationInformation response = sdncConfigurationResources.unAssignVnrConfiguration(serviceInstance,requestContext,vpnBondingLink.getVnrConfiguration(),"uuid",new URI("http://localhost")); - assertNotNull(response); + verify(MOCK_gcTopologyMapper).deactivateOrUnassignVnrReqMapper( + eq(SDNCSvcAction.UNASSIGN), eq(serviceInstance), eq(requestContext), any(Configuration.class), any(String.class), any(URI.class)); + } @Test public void deactivateVnrConfigurationTest() throws BadResponseException, MapperException , URISyntaxException{ GenericResourceApiGcTopologyOperationInformation response = sdncConfigurationResources.deactivateVnrConfiguration(serviceInstance,requestContext,vpnBondingLink.getVnrConfiguration(),"uuid",new URI("http://localhost")); - assertNotNull(response); + verify(MOCK_gcTopologyMapper).deactivateOrUnassignVnrReqMapper( + eq(SDNCSvcAction.DEACTIVATE), eq(serviceInstance), eq(requestContext), any(Configuration.class), any(String.class), any(URI.class)); + } } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapperTest.java index f01eeaeae8..f4d442bbc3 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GCTopologyOperationRequestMapperTest.java @@ -24,9 +24,15 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; import java.util.List; +import java.util.Map; import org.junit.Assert; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.sdnc.northbound.client.model.GenericResourceApiGcTopologyOperationInformation; import org.onap.so.bpmn.common.data.TestDataSetup; import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; @@ -38,11 +44,14 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBondingLink; import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; import org.onap.so.client.sdnc.beans.SDNCSvcAction; -import org.onap.sdnc.northbound.client.model.GenericResourceApiGcTopologyOperationInformation; - - -public class GCTopologyOperationRequestMapperTest extends TestDataSetup{ +@RunWith(MockitoJUnitRunner.Silent.class) +public class GCTopologyOperationRequestMapperTest extends TestDataSetup { + + @Spy + private GeneralTopologyObjectMapper generalTopologyObjectMapper; + + @InjectMocks private GCTopologyOperationRequestMapper genObjMapper = new GCTopologyOperationRequestMapper(); @Test @@ -80,13 +89,13 @@ public class GCTopologyOperationRequestMapperTest extends TestDataSetup{ private RequestContext getRequestContext() { RequestContext requestContext = new RequestContext(); requestContext.setMsoRequestId("MsoRequestId"); - HashMap<String, String> userParams = getUserParams(); + Map<String, Object> userParams = getUserParams(); requestContext.setUserParams(userParams); return requestContext; } - private HashMap<String, String> getUserParams() { - HashMap<String,String> userParams = new HashMap<>(); + private Map<String, Object> getUserParams() { + Map<String,Object> userParams = new HashMap<>(); userParams.put("lppCustomerId","lppCustomerId"); return userParams; } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapperTest.java index bf2cd347c0..3bb54278b6 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/GeneralTopologyObjectMapperTest.java @@ -29,6 +29,7 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import java.util.HashMap; +import java.util.Map; import org.junit.After; import org.junit.Before; @@ -104,7 +105,7 @@ public class GeneralTopologyObjectMapperTest extends TestDataSetup { customer.getServiceSubscription().getServiceInstances().add(serviceInstance); // RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setUserParams(userParams); requestContext.setProductFamilyId("productFamilyId"); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapperTest.java index 307fe289a1..6a14f8b567 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/NetworkTopologyOperationRequestMapperTest.java @@ -29,9 +29,16 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; +import java.util.Map; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; @@ -45,10 +52,9 @@ import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance; import org.onap.so.client.sdnc.beans.SDNCSvcAction; import org.onap.so.client.sdnc.beans.SDNCSvcOperation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkOperationInformation; -import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; import com.fasterxml.jackson.databind.ObjectMapper; +@RunWith(MockitoJUnitRunner.class) public class NetworkTopologyOperationRequestMapperTest { private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/"; @@ -59,6 +65,12 @@ public class NetworkTopologyOperationRequestMapperTest { private RequestContext requestContext; private L3Network network; private CloudRegion cloudRegion; + + @Spy + private GeneralTopologyObjectMapper generalTopologyObjectMapper; + + @InjectMocks + private NetworkTopologyOperationRequestMapper mapper = new NetworkTopologyOperationRequestMapper(); @Before public void before() { @@ -93,7 +105,7 @@ public class NetworkTopologyOperationRequestMapperTest { serviceInstance.setCollection(networkCollection); // requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setUserParams(userParams); requestContext.setProductFamilyId("productFamilyId"); @@ -115,7 +127,6 @@ public class NetworkTopologyOperationRequestMapperTest { @Test public void createGenericResourceApiNetworkOperationInformationTest() throws Exception { - NetworkTopologyOperationRequestMapper mapper = new NetworkTopologyOperationRequestMapper(); GenericResourceApiNetworkOperationInformation networkSDNCrequest = mapper.reqMapper( SDNCSvcOperation.NETWORK_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, GenericResourceApiRequestActionEnumeration.CREATENETWORKINSTANCE, network, serviceInstance, customer, requestContext, cloudRegion); @@ -132,7 +143,6 @@ public class NetworkTopologyOperationRequestMapperTest { @Test public void reqMapperTest() throws Exception { - NetworkTopologyOperationRequestMapper mapper = new NetworkTopologyOperationRequestMapper(); GenericResourceApiNetworkOperationInformation networkSDNCrequest = mapper.reqMapper( SDNCSvcOperation.NETWORK_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, GenericResourceApiRequestActionEnumeration.CREATENETWORKINSTANCE, network, serviceInstance, customer, requestContext, cloudRegion); @@ -143,7 +153,6 @@ public class NetworkTopologyOperationRequestMapperTest { @Test public void reqMapperNoCollectionTest() throws Exception { - NetworkTopologyOperationRequestMapper mapper = new NetworkTopologyOperationRequestMapper(); GenericResourceApiNetworkOperationInformation networkSDNCrequest = mapper.reqMapper( SDNCSvcOperation.NETWORK_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, GenericResourceApiRequestActionEnumeration.CREATENETWORKINSTANCE, network, serviceInstanceNoCollection, customer, requestContext, cloudRegion); @@ -154,7 +163,7 @@ public class NetworkTopologyOperationRequestMapperTest { @Test public void createGenericResourceApiNetworkOperationInformation_UnassignTest() throws Exception { - NetworkTopologyOperationRequestMapper mapperUnassign = new NetworkTopologyOperationRequestMapper(); + NetworkTopologyOperationRequestMapper mapperUnassign = mapper; GenericResourceApiNetworkOperationInformation networkSDNCrequestUnassign = mapperUnassign.reqMapper( SDNCSvcOperation.NETWORK_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, GenericResourceApiRequestActionEnumeration.DELETENETWORKINSTANCE, network, serviceInstance, customer, requestContext, cloudRegion); @@ -172,7 +181,6 @@ public class NetworkTopologyOperationRequestMapperTest { @Test public void createGenericResourceApiNetworkOperationInformationNoNetworkNameTest() throws Exception { - NetworkTopologyOperationRequestMapper mapper = new NetworkTopologyOperationRequestMapper(); //set network name NULL network.setNetworkName(null); GenericResourceApiNetworkOperationInformation networkSDNCrequest = mapper.reqMapper( diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapperTest.java index 5d8b31b3bf..0bf06a0bb0 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/ServiceTopologyOperationMapperTest.java @@ -26,8 +26,13 @@ import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs; import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; +import java.util.Map; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription; @@ -41,8 +46,15 @@ import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnum import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceOperationInformation; import com.fasterxml.jackson.databind.ObjectMapper; +@RunWith(MockitoJUnitRunner.class) public class ServiceTopologyOperationMapperTest { + @Spy + private GeneralTopologyObjectMapper generalTopologyObjectMapper; + + @InjectMocks + private ServiceTopologyOperationMapper mapper = new ServiceTopologyOperationMapper(); + @Test public void reqMapperTest() throws Exception { // prepare and set service instance @@ -64,12 +76,11 @@ public class ServiceTopologyOperationMapperTest { //prepare RequestContext RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setUserParams(userParams); requestContext.setProductFamilyId("productFamilyId"); - ServiceTopologyOperationMapper mapper = new ServiceTopologyOperationMapper(); GenericResourceApiServiceOperationInformation serviceOpInformation = mapper.reqMapper( SDNCSvcOperation.SERVICE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, GenericResourceApiRequestActionEnumeration.CREATESERVICEINSTANCE, serviceInstance, customer, requestContext); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java index 7d5aa9d1d9..282f23caa7 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java @@ -35,6 +35,10 @@ import java.util.Map; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; @@ -54,11 +58,18 @@ import org.onap.so.client.sdnc.beans.SDNCSvcOperation; import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleOperationInformation; import com.fasterxml.jackson.databind.ObjectMapper; +@RunWith(MockitoJUnitRunner.class) public class VfModuleTopologyOperationRequestMapperTest { private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/"; private final static String ERRORMESSAGE = "VF Module model info is null for testVfModuleId"; + @Spy + private GeneralTopologyObjectMapper generalTopologyObjectMapper; + + @InjectMocks + private VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper(); + @Rule public ExpectedException expectedException = ExpectedException.none(); @@ -84,7 +95,7 @@ public class VfModuleTopologyOperationRequestMapperTest { customer.getServiceSubscription().getServiceInstances().add(serviceInstance); // RequestContext requestContext = new RequestContext(); - HashMap<String,String> userParams = new HashMap<String,String>(); + Map<String,Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setUserParams(userParams); requestContext.setProductFamilyId("productFamilyId"); @@ -124,7 +135,6 @@ public class VfModuleTopologyOperationRequestMapperTest { CloudRegion cloudRegion = new CloudRegion(); - VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper(); GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper( SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, volumeGroup, vnf, serviceInstance, customer, cloudRegion, requestContext, null); @@ -159,7 +169,6 @@ public class VfModuleTopologyOperationRequestMapperTest { vfModule.setVfModuleId("testVfModuleId"); vfModule.setVfModuleName("testVfModuleName"); - VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper(); GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper( SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.UNASSIGN, vfModule, null, vnf, serviceInstance, null, null, null, null); @@ -197,9 +206,9 @@ public class VfModuleTopologyOperationRequestMapperTest { // RequestContext requestContext = new RequestContext(); RequestParameters requestParameters = new RequestParameters(); - HashMap<String,Object> userParams1 = new HashMap<String,Object>(); + HashMap<String,Object> userParams1 = new HashMap<>(); userParams1.put("key1", "value1"); - List<Map<String,Object>> userParams = new ArrayList<Map<String,Object>>(); + List<Map<String,Object>> userParams = new ArrayList<>(); userParams.add(userParams1); requestParameters.setUserParams(userParams); @@ -230,7 +239,6 @@ public class VfModuleTopologyOperationRequestMapperTest { CloudRegion cloudRegion = new CloudRegion(); - VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper(); GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper( SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN, vfModule, null, vnf, serviceInstance, customer, cloudRegion, requestContext, null); @@ -261,7 +269,7 @@ public class VfModuleTopologyOperationRequestMapperTest { customer.getServiceSubscription().getServiceInstances().add(serviceInstance); // RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<String, Object>(); userParams.put("key1", "value1"); requestContext.setUserParams(userParams); requestContext.setProductFamilyId("productFamilyId"); @@ -284,7 +292,6 @@ public class VfModuleTopologyOperationRequestMapperTest { CloudRegion cloudRegion = new CloudRegion(); - VfModuleTopologyOperationRequestMapper mapper = new VfModuleTopologyOperationRequestMapper(); expectedException.expect(MapperException.class); expectedException.expectMessage(ERRORMESSAGE); diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapperTest.java index 63c3680e8c..229a8cf601 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapperTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VnfTopologyOperationRequestMapperTest.java @@ -25,9 +25,14 @@ import static org.junit.Assert.assertNull; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; import java.util.List; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; @@ -45,8 +50,15 @@ import org.onap.so.client.sdnc.beans.SDNCSvcOperation; import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestActionEnumeration; import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfOperationInformation; +@RunWith(MockitoJUnitRunner.class) public class VnfTopologyOperationRequestMapperTest { + @Spy + private GeneralTopologyObjectMapper generalTopologyObjectMapper; + + @InjectMocks + private VnfTopologyOperationRequestMapper mapper = new VnfTopologyOperationRequestMapper(); + @Test public void reqMapperTest() throws Exception { // prepare and set service instance @@ -106,14 +118,13 @@ public class VnfTopologyOperationRequestMapperTest { //prepare RequestContext RequestContext requestContext = new RequestContext(); - HashMap<String, String> userParams = new HashMap<String, String>(); + Map<String, Object> userParams = new HashMap<>(); userParams.put("key1", "value1"); requestContext.setUserParams(userParams); requestContext.setProductFamilyId("productFamilyId"); CloudRegion cloudRegion = new CloudRegion(); - VnfTopologyOperationRequestMapper mapper = new VnfTopologyOperationRequestMapper(); GenericResourceApiVnfOperationInformation vnfOpInformation = mapper.reqMapper( SDNCSvcOperation.VNF_TOPOLOGY_OPERATION, SDNCSvcAction.ASSIGN,GenericResourceApiRequestActionEnumeration.CREATEVNFINSTANCE, vnf, serviceInstance, customer, cloudRegion, requestContext,true); |