aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop/common/rules-test/src/main
diff options
context:
space:
mode:
authorPeyton Puckett <peyton.puckett@att.com>2020-03-17 11:30:11 -0500
committerPeyton Puckett <peyton.puckett@att.com>2020-03-18 15:56:16 -0500
commitffb12d3ca702aa53c3f95d6e721f202f27e1aa8b (patch)
tree4f12a6a6b4c5fde837880b3273b3ecdf50b9fbb0 /controlloop/common/rules-test/src/main
parent01cbeec256bf5ec9e3ec2e7f599aef7eb4814ae3 (diff)
Add rainyDayTest for VFW
Added less restrictive filter condition to consider discarded messages Issue-ID: POLICY-2431 Change-Id: I0bc5e34636699094c97bd7e5669f66df875cd6ae Signed-off-by: Peyton Puckett <peyton.puckett@att.com>
Diffstat (limited to 'controlloop/common/rules-test/src/main')
-rw-r--r--controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/BaseRuleTest.java121
-rw-r--r--controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/Listener.java2
-rw-r--r--controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-timeout-vfw.json40
-rw-r--r--controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-vfw.json2
-rw-r--r--controlloop/common/rules-test/src/main/resources/vfw/tosca-vfw.json2
-rw-r--r--controlloop/common/rules-test/src/main/resources/vfw/vfw.appc.failure.json17
6 files changed, 180 insertions, 4 deletions
diff --git a/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/BaseRuleTest.java b/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/BaseRuleTest.java
index 1de02e54c..f8b033ca0 100644
--- a/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/BaseRuleTest.java
+++ b/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/BaseRuleTest.java
@@ -29,6 +29,7 @@ import java.util.function.Supplier;
import java.util.stream.Collectors;
import lombok.AccessLevel;
import lombok.Getter;
+
import org.junit.Test;
import org.onap.policy.appc.Request;
import org.onap.policy.appclcm.AppcLcmDmaapWrapper;
@@ -87,8 +88,10 @@ public abstract class BaseRuleTest {
// VFW
private static final String VFW_TOSCA_LEGACY_POLICY = "vfw/tosca-vfw.json";
private static final String VFW_TOSCA_COMPLIANT_POLICY = "vfw/tosca-compliant-vfw.json";
+ private static final String VFW_TOSCA_COMPLIANT_TIME_OUT_POLICY = "vfw/tosca-compliant-timeout-vfw.json";
private static final String VFW_ONSET = "vfw/vfw.onset.json";
private static final String VFW_APPC_SUCCESS = "vfw/vfw.appc.success.json";
+ private static final String VFW_APPC_FAILURE = "vfw/vfw.appc.failure.json";
// VLB
private static final String VLB_TOSCA_LEGACY_POLICY = "vlb/tosca-vlb.json";
@@ -111,7 +114,6 @@ public abstract class BaseRuleTest {
protected static HttpClients httpClients;
protected static Simulators simulators;
-
// used to inject and wait for messages
@Getter(AccessLevel.PROTECTED)
private Topics topics;
@@ -322,6 +324,30 @@ public abstract class BaseRuleTest {
appcLegacySunnyDay(VFW_TOSCA_COMPLIANT_POLICY, VFW_ONSET, "ModifyConfig");
}
+ /**
+ * VFW Rainy Day using legacy tosca policy (operation and final failure).
+ */
+ @Test
+ public void testVfwRainyDayLegacyFailure() {
+ appcLegacyRainyDay(VFW_TOSCA_LEGACY_POLICY, VFW_ONSET, "ModifyConfig");
+ }
+
+ /**
+ * VFW Rainy Day using compliant tosca policy (final failure).
+ */
+ @Test
+ public void testVfwRainyDayOverallTimeout() {
+ appcLegacyRainyDayNoResponse(VFW_TOSCA_COMPLIANT_TIME_OUT_POLICY, VFW_ONSET, "ModifyConfig");
+ }
+
+ /**
+ * VFW Rainy day using compliant tosca policy (final failure due to timeout).
+ */
+ @Test
+ public void testVfwRainyDayCompliantTimeout() {
+ appcLegacyRainyDayNoResponse(VFW_TOSCA_COMPLIANT_POLICY, VFW_ONSET, "ModifyConfig");
+ }
+
// VLB
/**
@@ -435,6 +461,81 @@ public abstract class BaseRuleTest {
}
/**
+ * Rainy day scenario for use cases that use Legacy APPC.
+ *
+ * @param policyFile file containing the ToscaPolicy to be loaded
+ * @param onsetFile file containing the ONSET to be injected
+ * @param operation expected APPC operation request
+ * @param checkOperation flag to determine whether or not to wait for operation timeout
+ */
+ protected void appcLegacyRainyDay(String policyFile, String onsetFile, String operation) {
+ policyClMgt = topics.createListener(POLICY_CL_MGT_TOPIC, VirtualControlLoopNotification.class, controller);
+ appcClSink = topics.createListener(APPC_CL_TOPIC, Request.class, APPC_LEGACY_CODER);
+
+ assertEquals(0, controller.getDrools().factCount(rules.getControllerName()));
+ policy = rules.setupPolicyFromFile(policyFile);
+ assertEquals(2, controller.getDrools().factCount(rules.getControllerName()));
+
+ /* Inject an ONSET event over the DCAE topic */
+ topics.inject(DCAE_TOPIC, onsetFile);
+
+ /* Wait to acquire a LOCK and a PDP-X PERMIT */
+ waitForLockAndPermit(policy, policyClMgt);
+
+ /*
+ * Ensure that an APPC RESTART request was sent in response to the matching ONSET
+ */
+ Request appcreq = appcClSink.await(req -> operation.equals(req.getAction()));
+
+ /*
+ * Inject a 401 APPC Response Return over the APPC topic, with appropriate
+ * subRequestId
+ */
+ topics.inject(APPC_CL_TOPIC, VFW_APPC_FAILURE, appcreq.getCommonHeader().getSubRequestId());
+
+ /* --- Operation Completed --- */
+ waitForOperationFailure();
+
+ /* --- Transaction Completed --- */
+ waitForFinalFailure(policy, policyClMgt);
+ }
+
+ /**
+ * Rainy day scenario for use cases that use Legacy APPC.
+ * Expected to fail due to timeout.
+ *
+ * @param policyFile file containing the ToscaPolicy to be loaded
+ * @param onsetFile file containing the ONSET to be injected
+ * @param operation expected APPC operation request
+ */
+ protected void appcLegacyRainyDayNoResponse(String policyFile, String onsetFile, String operation) {
+ policyClMgt = topics.createListener(POLICY_CL_MGT_TOPIC, VirtualControlLoopNotification.class, controller);
+ appcClSink = topics.createListener(APPC_CL_TOPIC, Request.class, APPC_LEGACY_CODER);
+
+ assertEquals(0, controller.getDrools().factCount(rules.getControllerName()));
+ policy = rules.setupPolicyFromFile(policyFile);
+ assertEquals(2, controller.getDrools().factCount(rules.getControllerName()));
+
+ /* Inject an ONSET event over the DCAE topic */
+ topics.inject(DCAE_TOPIC, onsetFile);
+
+ /* Wait to acquire a LOCK and a PDP-X PERMIT */
+ waitForLockAndPermit(policy, policyClMgt);
+
+ /*
+ * Ensure that an APPC RESTART request was sent in response to the matching ONSET
+ */
+ appcClSink.await(req -> operation.equals(req.getAction()));
+
+ /*
+ * Do not inject an APPC Response.
+ */
+
+ /* --- Transaction Completed --- */
+ waitForFinalFailure(policy, policyClMgt);
+ }
+
+ /**
* Sunny day scenario for use cases that use an HTTP simulator.
*
* @param policyFile file containing the ToscaPolicy to be loaded
@@ -481,6 +582,24 @@ public abstract class BaseRuleTest {
}
/**
+ * Waits for a OPERATION FAILURE transaction notification.
+ */
+ protected void waitForOperationFailure() {
+ policyClMgt.await(notif -> notif.getNotification() == ControlLoopNotificationType.OPERATION_FAILURE);
+ }
+
+ /**
+ * Waits for a FINAL FAILURE transaction notification.
+ *
+ * @return the FINAL FAILURE notification
+ */
+ protected VirtualControlLoopNotification waitForFinalFailure(ToscaPolicy policy,
+ Listener<VirtualControlLoopNotification> policyClMgt) {
+
+ return this.waitForFinal(policy, policyClMgt, ControlLoopNotificationType.FINAL_FAILURE);
+ }
+
+ /**
* Waits for notifications for LOCK acquisition and GUARD Permit so that event
* processing may proceed.
*/
diff --git a/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/Listener.java b/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/Listener.java
index a353c98fb..5110fe7b9 100644
--- a/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/Listener.java
+++ b/controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/Listener.java
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
*/
public class Listener<T> implements TopicListener {
private static final Logger logger = LoggerFactory.getLogger(Listener.class);
- private static final long DEFAULT_WAIT_SEC = 5L;
+ private static final long DEFAULT_WAIT_SEC = 10L;
private final TopicSink sink;
private final Function<String, T> decoder;
diff --git a/controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-timeout-vfw.json b/controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-timeout-vfw.json
new file mode 100644
index 000000000..335068514
--- /dev/null
+++ b/controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-timeout-vfw.json
@@ -0,0 +1,40 @@
+{
+ "type": "onap.policies.controlloop.operational.common.Drools",
+ "type_version": "1.0.0",
+ "name": "operational.modifyconfig",
+ "version": "1.0.0",
+ "metadata": {
+ "policy-id": "operational.modifyconfig"
+ },
+ "properties": {
+ "controllerName": "usecases",
+ "id": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+ "timeout": 7,
+ "abatement": false,
+ "trigger": "unique-policy-id-1-modifyConfig",
+ "operations": [
+ {
+ "id": "unique-policy-id-1-modifyConfig",
+ "description": "Modify the packet generator",
+ "operation": {
+ "actor": "APPC",
+ "operation": "ModifyConfig",
+ "target": {
+ "targetType": "VNF",
+ "entityIds": {
+ "resourceID": "bbb3cefd-01c8-413c-9bdd-2b92f9ca3d38"
+ }
+ }
+ },
+ "timeout": 10,
+ "retries": 0,
+ "success": "final_success",
+ "failure": "final_failure",
+ "failure_timeout": "final_failure_timeout",
+ "failure_retries": "final_failure_retries",
+ "failure_exception": "final_failure_exception",
+ "failure_guard": "final_failure_guard"
+ }
+ ]
+ }
+}
diff --git a/controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-vfw.json b/controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-vfw.json
index f55145658..6d8603b0f 100644
--- a/controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-vfw.json
+++ b/controlloop/common/rules-test/src/main/resources/vfw/tosca-compliant-vfw.json
@@ -26,7 +26,7 @@
}
}
},
- "timeout": 300,
+ "timeout": 7,
"retries": 0,
"success": "final_success",
"failure": "final_failure",
diff --git a/controlloop/common/rules-test/src/main/resources/vfw/tosca-vfw.json b/controlloop/common/rules-test/src/main/resources/vfw/tosca-vfw.json
index 35a839698..b9f6b7f43 100644
--- a/controlloop/common/rules-test/src/main/resources/vfw/tosca-vfw.json
+++ b/controlloop/common/rules-test/src/main/resources/vfw/tosca-vfw.json
@@ -2,7 +2,7 @@
"type": "onap.policies.controlloop.Operational",
"type_version": "1.0.0",
"properties": {
- "content": "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0A%20%20services%3A%0A%20%20%20%20-%20serviceInvariantUUID%3A%20f6937c86-584c-47ae-ad29-8d41d6f0cc7c%0A%20%20%20%20%20%20serviceUUID%3A%207be584e2-0bb2-4126-adaf-ced2c77ca0b3%0A%20%20%20%20%20%20serviceName%3A%20Service_Ete_Name7ba1fbde-6187-464a-a62d-d9dd25bdf4e8%0A%20%20trigger_policy%3A%20unique-policy-id-1-modifyConfig%0A%20%20timeout%3A%2060%0A%20%20abatement%3A%20false%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-modifyConfig%0A%20%20%20%20name%3A%20modify%20packet%20gen%20config%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20ModifyConfig%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20resourceID%3A%20bbb3cefd-01c8-413c-9bdd-2b92f9ca3d38%0A%20%20%20%20%20%20type%3A%20VNF%0A%20%20%20%20retry%3A%200%0A%20%20%20%20timeout%3A%2030%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard"
+ "content": "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0A%20%20services%3A%0A%20%20%20%20-%20serviceInvariantUUID%3A%20f6937c86-584c-47ae-ad29-8d41d6f0cc7c%0A%20%20%20%20%20%20serviceUUID%3A%207be584e2-0bb2-4126-adaf-ced2c77ca0b3%0A%20%20%20%20%20%20serviceName%3A%20Service_Ete_Name7ba1fbde-6187-464a-a62d-d9dd25bdf4e8%0A%20%20trigger_policy%3A%20unique-policy-id-1-modifyConfig%0A%20%20timeout%3A%2060%0A%20%20abatement%3A%20false%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-modifyConfig%0A%20%20%20%20name%3A%20modify%20packet%20gen%20config%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20ModifyConfig%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20resourceID%3A%20bbb3cefd-01c8-413c-9bdd-2b92f9ca3d38%0A%20%20%20%20%20%20type%3A%20VNF%0A%20%20%20%20retry%3A%200%0A%20%20%20%20timeout%3A%207%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard"
},
"name": "vfw",
"version": "1.0.0"
diff --git a/controlloop/common/rules-test/src/main/resources/vfw/vfw.appc.failure.json b/controlloop/common/rules-test/src/main/resources/vfw/vfw.appc.failure.json
new file mode 100644
index 000000000..ff4361867
--- /dev/null
+++ b/controlloop/common/rules-test/src/main/resources/vfw/vfw.appc.failure.json
@@ -0,0 +1,17 @@
+{
+ "CommonHeader": {
+ "TimeStamp": 1506051879001,
+ "APIver": "1.01",
+ "RequestID": "c7c6a4aa-bb61-4a15-b831-ba1472dd4a65",
+ "SubRequestID": "${replaceMe}",
+ "RequestTrack": [],
+ "Flags": []
+ },
+ "Status": {
+ "Code": 401,
+ "Value": "FAILURE"
+ },
+ "Payload": {
+ "generic-vnf.vnf-id": "jimmy-test-vnf2"
+ }
+}
us" name="sdncVersion is 1610 " default="SequenceFlow_1dwch0k"> <bpmn2:incoming>SequenceFlow_1hcfvcj</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_0riudmc</bpmn2:outgoing> <bpmn2:outgoing>SequenceFlow_1dwch0k</bpmn2:outgoing> </bpmn2:exclusiveGateway> <bpmn2:sequenceFlow id="SequenceFlow_0riudmc" name="yes" sourceRef="ExclusiveGateway_1mrh7us" targetRef="callGenericDeleteService"> <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("sdncVersion" ) == "1610" }]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> <bpmn2:sequenceFlow id="SequenceFlow_1dwch0k" name="no" sourceRef="ExclusiveGateway_1mrh7us" targetRef="ScriptTask_0xxwbdq" /> <bpmn2:callActivity id="CallActivity_1s8pf0x" name="Call AAI Generic GetService" calledElement="GenericGetService"> <bpmn2:extensionElements> <camunda:in source="serviceInstanceId" target="GENGS_serviceInstanceId" /> <camunda:in sourceExpression="service-instance" target="GENGS_type" /> <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" /> <camunda:out source="GENGS_SuccessIndicator" target="GENGS_SuccessIndicator" /> <camunda:out source="WorkflowException" target="WorkflowException" /> <camunda:out source="GENGS_siResourceLink" target="GENGS_siResourceLink" /> <camunda:out source="GENGS_service" target="GENGS_service" /> </bpmn2:extensionElements> <bpmn2:incoming>SequenceFlow_1jqc16k</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_1grea1r</bpmn2:outgoing> </bpmn2:callActivity> <bpmn2:sequenceFlow id="SequenceFlow_1jqc16k" sourceRef="preProcessRequest_ScriptTask" targetRef="CallActivity_1s8pf0x" /> <bpmn2:scriptTask id="ScriptTask_02da0lj" name="Post Process AAI GET" scriptFormat="groovy"> <bpmn2:incoming>SequenceFlow_1grea1r</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_1up0j5r</bpmn2:outgoing> <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.* def ddsi = new DoDeleteServiceInstance() ddsi.postProcessAAIGET(execution)]]></bpmn2:script> </bpmn2:scriptTask> <bpmn2:sequenceFlow id="SequenceFlow_1grea1r" sourceRef="CallActivity_1s8pf0x" targetRef="ScriptTask_02da0lj" /> <bpmn2:sequenceFlow id="SequenceFlow_1up0j5r" sourceRef="ScriptTask_02da0lj" targetRef="ExclusiveGateway_0590oev" /> <bpmn2:scriptTask id="ScriptTask_1ybdq3e" name="Post Process AAI Delete" scriptFormat="groovy"> <bpmn2:incoming>SequenceFlow_05wu9i7</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_1wyvxwi</bpmn2:outgoing> <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.* def ddsi = new DoDeleteServiceInstance() ddsi.postProcessAAIDEL(execution)]]></bpmn2:script> </bpmn2:scriptTask> <bpmn2:sequenceFlow id="SequenceFlow_1wyvxwi" sourceRef="ScriptTask_1ybdq3e" targetRef="EndEvent_3" /> <bpmn2:subProcess id="SubProcess_1jggn82" name="Sub-process for UnexpectedErrors" triggeredByEvent="true"> <bpmn2:startEvent id="StartEvent_1antv0y"> <bpmn2:outgoing>SequenceFlow_0u33vy6</bpmn2:outgoing> <bpmn2:errorEventDefinition errorRef="Error_1" /> </bpmn2:startEvent> <bpmn2:endEvent id="EndEvent_03iywf6"> <bpmn2:incoming>SequenceFlow_0hevfee</bpmn2:incoming> </bpmn2:endEvent> <bpmn2:scriptTask id="ScriptTask_1va95un" name="Log / Print Unexpected Error" scriptFormat="groovy"> <bpmn2:incoming>SequenceFlow_0u33vy6</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_0hevfee</bpmn2:outgoing> <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.* ExceptionUtil ex = new ExceptionUtil() ex.processJavaException(execution)]]></bpmn2:script> </bpmn2:scriptTask> <bpmn2:sequenceFlow id="SequenceFlow_0u33vy6" name="" sourceRef="StartEvent_1antv0y" targetRef="ScriptTask_1va95un" /> <bpmn2:sequenceFlow id="SequenceFlow_0hevfee" name="" sourceRef="ScriptTask_1va95un" targetRef="EndEvent_03iywf6" /> </bpmn2:subProcess> <bpmn2:callActivity id="CallActivity_1c5wru8" name="Call SDNC Service Topology Delete" calledElement="sdncAdapter"> <bpmn2:extensionElements> <camunda:in source="sdncDelete" target="sdncAdapterWorkflowRequest" /> <camunda:in source="msoRequestId" target="mso-request-id" /> <camunda:in source="serviceInstanceId" target="mso-service-instance-id" /> <camunda:out source="WorkflowException" target="WorkflowException" /> <camunda:out source="sdncAdapterResponse" target="sdncDeleteResponse" /> <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" /> </bpmn2:extensionElements> <bpmn2:incoming>SequenceFlow_1w8ao21</bpmn2:incoming> <bpmn2:incoming>SequenceFlow_1swzrij</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_14x55db</bpmn2:outgoing> </bpmn2:callActivity> <bpmn2:scriptTask id="ScriptTask_0lc115e" name="Post Process SDNC Delete" scriptFormat="groovy"> <bpmn2:incoming>SequenceFlow_14x55db</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_0znbzxu</bpmn2:outgoing> <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.* String response = execution.getVariable("sdncDeleteResponse") def ddsi = new DoDeleteServiceInstance() ddsi.postProcessSDNCDelete(execution, response, "delete")]]></bpmn2:script> </bpmn2:scriptTask> <bpmn2:sequenceFlow id="SequenceFlow_14x55db" sourceRef="CallActivity_1c5wru8" targetRef="ScriptTask_0lc115e" /> <bpmn2:sequenceFlow id="SequenceFlow_0znbzxu" sourceRef="ScriptTask_0lc115e" targetRef="callGenericDeleteService" /> <bpmn2:exclusiveGateway id="ExclusiveGateway_1xbefi3" name="skipDeactivate for TRANSPORT" default="SequenceFlow_0yohjl7"> <bpmn2:incoming>SequenceFlow_1ju26o1</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_0yohjl7</bpmn2:outgoing> <bpmn2:outgoing>SequenceFlow_1swzrij</bpmn2:outgoing> </bpmn2:exclusiveGateway> <bpmn2:sequenceFlow id="SequenceFlow_1ju26o1" sourceRef="ScriptTask_0xxwbdq" targetRef="ExclusiveGateway_1xbefi3" /> <bpmn2:sequenceFlow id="SequenceFlow_0yohjl7" name="no" sourceRef="ExclusiveGateway_1xbefi3" targetRef="CallActivity_0ak0ezb" /> <bpmn2:sequenceFlow id="SequenceFlow_1swzrij" name="yes" sourceRef="ExclusiveGateway_1xbefi3" targetRef="CallActivity_1c5wru8"> <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("skipDeactivate" ) == true }]]></bpmn2:conditionExpression> </bpmn2:sequenceFlow> </bpmn2:process> <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" /> <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" /> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoDeleteServiceInstance"> <bpmndi:BPMNShape id="_BPMNShape_StartEvent_47" bpmnElement="deleteSI_startEven"> <dc:Bounds x="-334" y="79" width="36" height="36" /> <bpmndi:BPMNLabel> <dc:Bounds x="-340" y="120" width="49" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask"> <dc:Bounds x="-265" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="_BPMNShape_EndEvent_177" bpmnElement="EndEvent_3"> <dc:Bounds x="1384" y="201" width="36" height="36" /> <bpmndi:BPMNLabel> <dc:Bounds x="1402" y="242" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="CallActivity_1md4kyb_di" bpmnElement="callGenericDeleteService"> <dc:Bounds x="1202" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_05wu9i7_di" bpmnElement="SequenceFlow_05wu9i7"> <di:waypoint xsi:type="dc:Point" x="1302" y="97" /> <di:waypoint xsi:type="dc:Point" x="1352" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="1327" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0k28xib_di" bpmnElement="SequenceFlow_0k28xib"> <di:waypoint xsi:type="dc:Point" x="713" y="97" /> <di:waypoint xsi:type="dc:Point" x="776" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="745" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="CallActivity_0ak0ezb_di" bpmnElement="CallActivity_0ak0ezb"> <dc:Bounds x="613" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_1uxr0cx_di" bpmnElement="ScriptTask_1uxr0cx"> <dc:Bounds x="776" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0jfgn05_di" bpmnElement="SequenceFlow_0jfgn05"> <di:waypoint xsi:type="dc:Point" x="-298" y="97" /> <di:waypoint xsi:type="dc:Point" x="-265" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="-281" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ScriptTask_0xxwbdq_di" bpmnElement="ScriptTask_0xxwbdq"> <dc:Bounds x="354" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ExclusiveGateway_0590oev_di" bpmnElement="ExclusiveGateway_0590oev" isMarkerVisible="true"> <dc:Bounds x="150" y="72" width="50" height="50" /> <bpmndi:BPMNLabel> <dc:Bounds x="138" y="51" width="74" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1hcfvcj_di" bpmnElement="SequenceFlow_1hcfvcj"> <di:waypoint xsi:type="dc:Point" x="200" y="97" /> <di:waypoint xsi:type="dc:Point" x="236" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="222" y="99" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="EndEvent_0ronxsz_di" bpmnElement="EndEvent_0ronxsz"> <dc:Bounds x="157" y="221" width="36" height="36" /> <bpmndi:BPMNLabel> <dc:Bounds x="175" y="262" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_05jfuko_di" bpmnElement="SequenceFlow_05jfuko"> <di:waypoint xsi:type="dc:Point" x="175" y="122" /> <di:waypoint xsi:type="dc:Point" x="175" y="221" /> <bpmndi:BPMNLabel> <dc:Bounds x="156" y="137.69226916562667" width="12" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1w8ao21_di" bpmnElement="SequenceFlow_1w8ao21"> <di:waypoint xsi:type="dc:Point" x="876" y="97" /> <di:waypoint xsi:type="dc:Point" x="917" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="897" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_1mrh7us_di" bpmnElement="ExclusiveGateway_1mrh7us" isMarkerVisible="true"> <dc:Bounds x="236" y="72" width="50" height="50" /> <bpmndi:BPMNLabel> <dc:Bounds x="227" y="126" width="76" height="26" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0riudmc_di" bpmnElement="SequenceFlow_0riudmc"> <di:waypoint xsi:type="dc:Point" x="261" y="72" /> <di:waypoint xsi:type="dc:Point" x="261" y="-20" /> <di:waypoint xsi:type="dc:Point" x="1252" y="-20" /> <di:waypoint xsi:type="dc:Point" x="1252" y="57" /> <bpmndi:BPMNLabel> <dc:Bounds x="753" y="-35" width="18" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1dwch0k_di" bpmnElement="SequenceFlow_1dwch0k"> <di:waypoint xsi:type="dc:Point" x="286" y="97" /> <di:waypoint xsi:type="dc:Point" x="310" y="97" /> <di:waypoint xsi:type="dc:Point" x="353" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="308" y="101.4811676034096" width="13" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="CallActivity_1s8pf0x_di" bpmnElement="CallActivity_1s8pf0x"> <dc:Bounds x="-121" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1jqc16k_di" bpmnElement="SequenceFlow_1jqc16k"> <di:waypoint xsi:type="dc:Point" x="-165" y="97" /> <di:waypoint xsi:type="dc:Point" x="-121" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="-143" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ScriptTask_02da0lj_di" bpmnElement="ScriptTask_02da0lj"> <dc:Bounds x="20" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1grea1r_di" bpmnElement="SequenceFlow_1grea1r"> <di:waypoint xsi:type="dc:Point" x="-21" y="97" /> <di:waypoint xsi:type="dc:Point" x="20" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="0" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1up0j5r_di" bpmnElement="SequenceFlow_1up0j5r"> <di:waypoint xsi:type="dc:Point" x="120" y="97" /> <di:waypoint xsi:type="dc:Point" x="150" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="135" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ScriptTask_1ybdq3e_di" bpmnElement="ScriptTask_1ybdq3e"> <dc:Bounds x="1352" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1wyvxwi_di" bpmnElement="SequenceFlow_1wyvxwi"> <di:waypoint xsi:type="dc:Point" x="1402" y="137" /> <di:waypoint xsi:type="dc:Point" x="1402" y="201" /> <bpmndi:BPMNLabel> <dc:Bounds x="1417" y="169" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="SubProcess_1jggn82_di" bpmnElement="SubProcess_1jggn82" isExpanded="true"> <dc:Bounds x="266" y="409" width="467" height="193" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="StartEvent_1antv0y_di" bpmnElement="StartEvent_1antv0y"> <dc:Bounds x="334" y="475" width="36" height="36" /> <bpmndi:BPMNLabel> <dc:Bounds x="352" y="516" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="EndEvent_03iywf6_di" bpmnElement="EndEvent_03iywf6"> <dc:Bounds x="627" y="475" width="36" height="36" /> <bpmndi:BPMNLabel> <dc:Bounds x="645" y="516" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_1va95un_di" bpmnElement="ScriptTask_1va95un"> <dc:Bounds x="438" y="453" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0u33vy6_di" bpmnElement="SequenceFlow_0u33vy6"> <di:waypoint xsi:type="dc:Point" x="370" y="493" /> <di:waypoint xsi:type="dc:Point" x="438" y="493" /> <bpmndi:BPMNLabel> <dc:Bounds x="404" y="478" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0hevfee_di" bpmnElement="SequenceFlow_0hevfee"> <di:waypoint xsi:type="dc:Point" x="538" y="493" /> <di:waypoint xsi:type="dc:Point" x="627" y="493" /> <bpmndi:BPMNLabel> <dc:Bounds x="583" y="478" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="CallActivity_1c5wru8_di" bpmnElement="CallActivity_1c5wru8"> <dc:Bounds x="917" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ScriptTask_0lc115e_di" bpmnElement="ScriptTask_0lc115e"> <dc:Bounds x="1058" y="57" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_14x55db_di" bpmnElement="SequenceFlow_14x55db"> <di:waypoint xsi:type="dc:Point" x="1017" y="97" /> <di:waypoint xsi:type="dc:Point" x="1058" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="1038" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0znbzxu_di" bpmnElement="SequenceFlow_0znbzxu"> <di:waypoint xsi:type="dc:Point" x="1158" y="97" /> <di:waypoint xsi:type="dc:Point" x="1202" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="1180" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ExclusiveGateway_1xbefi3_di" bpmnElement="ExclusiveGateway_1xbefi3" isMarkerVisible="true"> <dc:Bounds x="508" y="72" width="50" height="50" /> <bpmndi:BPMNLabel> <dc:Bounds x="495" y="126" width="84" height="25" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1ju26o1_di" bpmnElement="SequenceFlow_1ju26o1"> <di:waypoint xsi:type="dc:Point" x="454" y="97" /> <di:waypoint xsi:type="dc:Point" x="508" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="481" y="82" width="0" height="0" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0yohjl7_di" bpmnElement="SequenceFlow_0yohjl7"> <di:waypoint xsi:type="dc:Point" x="558" y="97" /> <di:waypoint xsi:type="dc:Point" x="613" y="97" /> <bpmndi:BPMNLabel> <dc:Bounds x="580" y="72" width="12" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1swzrij_di" bpmnElement="SequenceFlow_1swzrij"> <di:waypoint xsi:type="dc:Point" x="533" y="72" /> <di:waypoint xsi:type="dc:Point" x="533" y="26" /> <di:waypoint xsi:type="dc:Point" x="967" y="26" /> <di:waypoint xsi:type="dc:Point" x="967" y="57" /> <bpmndi:BPMNLabel> <dc:Bounds x="741" y="11" width="18" height="12" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn2:definitions>