added updated dockerfiles and ric workflow
Change-Id: I28f4367307789418825deb5c81684d6fccbf3d32
Signed-off-by: Rohan Patel <rp5811@att.com>
diff --git a/oran-ric-test-head/Dockerfile b/oran-ric-test-head/Dockerfile
index 86f740d..7b6be0c 100644
--- a/oran-ric-test-head/Dockerfile
+++ b/oran-ric-test-head/Dockerfile
@@ -1,3 +1,18 @@
+# Copyright (c) 2019 AT&T Intellectual Property. #
+# #
+# 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. #
+################################################################################
+
FROM python:2.7
RUN python --version
diff --git a/oran-ric-test-head/Jenkinsfile b/oran-ric-test-head/Jenkinsfile
index f5defc2..a6ad06a 100644
--- a/oran-ric-test-head/Jenkinsfile
+++ b/oran-ric-test-head/Jenkinsfile
@@ -1,5 +1,19 @@
#!/usr/bin/env groovy
+/* Copyright (c) 2019 AT&T Intellectual Property. #
+# #
+# 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. #
+##############################################################################*/
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],
diff --git a/oran-ric-test-head/mock_server/index.js b/oran-ric-test-head/mock_server/index.js
index 255591a..d915ef9 100644
--- a/oran-ric-test-head/mock_server/index.js
+++ b/oran-ric-test-head/mock_server/index.js
@@ -1,3 +1,18 @@
+/* Copyright (c) 2019 AT&T Intellectual Property. #
+# #
+# 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. #
+##############################################################################*/
+
const express = require('express')
const app = express()
const port = 3000
diff --git a/oran-ric-test-head/ric-test-head.py b/oran-ric-test-head/ric-test-head.py
index f80d3d3..9057678 100644
--- a/oran-ric-test-head/ric-test-head.py
+++ b/oran-ric-test-head/ric-test-head.py
@@ -17,6 +17,7 @@
import json
import logging
from logging import FileHandler
+import os
import requests
from flask import Flask, request, jsonify
@@ -82,7 +83,7 @@
responseData['vthResponse']['resultData']['statusCode'] = res.status_code
responseData['vthResponse']['resultData']['resultOutput'] = res.json()
elif action == 'deploy':
- payload = {'name': requestData['name']}
+ payload = json.dumps({'name': requestData['name']})
res = requests.post(baseAddress+config['actions_path'][action], data=payload)
responseData['vthResponse']['resultData']['statusCode'] = res.status_code
responseData['vthResponse']['resultData']['resultOutput'] = res.json()
diff --git a/oran-ric-test-head/workflows/Delete_xAPP_Test.bpmn b/oran-ric-test-head/workflows/Delete_xAPP_Test.bpmn
new file mode 100644
index 0000000..98be1cc
--- /dev/null
+++ b/oran-ric-test-head/workflows/Delete_xAPP_Test.bpmn
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0x9ttcz" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.0.1">
+ <bpmn:process id="Delete_xAPP_Test" isExecutable="true">
+ <bpmn:startEvent id="StartEvent_0cebtfp" camunda:asyncBefore="true">
+ <bpmn:outgoing>SequenceFlow_03vt4gu</bpmn:outgoing>
+ </bpmn:startEvent>
+ <bpmn:scriptTask id="verify" name="Verify Inputs" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_03vt4gu</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1gceb7d</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var deleteVthId = 'delete'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var validInput = false;
+var testResultMessage = "";
+
+try{
+
+ var appName = testData['appName'];
+
+ if(typeof appName !== 'string' || appName.trim() === ''){
+ System.out.println("appName is not a string, or empty string")
+ throw Error("appName is not a string, or empty string")
+ }
+
+
+ validInput = true
+
+ vthInput[deleteVthId].name = appName
+}
+catch(err){
+ System.out.println(err)
+ validInput = false
+ testResultMessage = "Invalid input params. error: " + err;
+ execution.setVariable("testResult", "FAILED");
+}
+
+execution.setVariable("validInput", validInput)
+execution.setVariable("testResultMessage", testResultMessage)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:exclusiveGateway id="ExclusiveGateway_04n8k6e" default="SequenceFlow_035k1kv">
+ <bpmn:incoming>SequenceFlow_1gceb7d</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1xykozf</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_035k1kv</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="SequenceFlow_03vt4gu" sourceRef="StartEvent_0cebtfp" targetRef="verify" />
+ <bpmn:sequenceFlow id="SequenceFlow_1gceb7d" sourceRef="verify" targetRef="ExclusiveGateway_04n8k6e" />
+ <bpmn:sequenceFlow id="SequenceFlow_1xykozf" name="To Delete" sourceRef="ExclusiveGateway_04n8k6e" targetRef="delete">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${validInput}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:scriptTask id="ScriptTask_1d0llw5" name="Mark Test Failure" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_035k1kv</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_11htm0z</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1ivi698</bpmn:outgoing>
+ <bpmn:script>execution.setVariable("testResult", "FAILED")</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="ScriptTask_0zeodmx" name="Mark Test Success" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_1fcorq2</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1s62i1u</bpmn:outgoing>
+ <bpmn:script>execution.setVariable("testResult", "SUCCESS")</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:endEvent id="EndEvent_0wf03rq">
+ <bpmn:incoming>SequenceFlow_1czqxne</bpmn:incoming>
+ <bpmn:terminateEventDefinition id="TerminateEventDefinition_1o1stwj" />
+ </bpmn:endEvent>
+ <bpmn:sequenceFlow id="SequenceFlow_1ivi698" sourceRef="ScriptTask_1d0llw5" targetRef="ServiceTask_0yfqtmz" />
+ <bpmn:sequenceFlow id="SequenceFlow_1s62i1u" sourceRef="ScriptTask_0zeodmx" targetRef="ServiceTask_0yfqtmz" />
+ <bpmn:sequenceFlow id="SequenceFlow_1czqxne" sourceRef="ServiceTask_0yfqtmz" targetRef="EndEvent_0wf03rq" />
+ <bpmn:exclusiveGateway id="ExclusiveGateway_0df2lf1" default="SequenceFlow_11htm0z">
+ <bpmn:incoming>SequenceFlow_1hq011g</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1fcorq2</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_11htm0z</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="SequenceFlow_1rdc2w4" sourceRef="delete" targetRef="checkDelete" />
+ <bpmn:sequenceFlow id="SequenceFlow_1fcorq2" name="Deleted" sourceRef="ExclusiveGateway_0df2lf1" targetRef="ScriptTask_0zeodmx">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${deleted}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_035k1kv" sourceRef="ExclusiveGateway_04n8k6e" targetRef="ScriptTask_1d0llw5" />
+ <bpmn:sequenceFlow id="SequenceFlow_11htm0z" sourceRef="ExclusiveGateway_0df2lf1" targetRef="ScriptTask_1d0llw5" />
+ <bpmn:scriptTask id="checkDelete" name="Verify Delete" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_1rdc2w4</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1hq011g</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var deleteVthId = 'delete'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var deleted = false;
+var testResultMessage = "RIC VTH reported that the xapp was not deleted."
+
+
+
+try {
+ //get output from delete call
+ var testExecution = execution.getVariable('otf-execution-testExecution');
+ var data = null;
+ testExecution.testHeadResults.forEach(function(item, index, array) {
+ if(item.bpmnVthTaskId == deleteVthId ){
+ data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];
+ }
+ })
+
+ if(data === 204){
+ deleted = true
+ testResultMessage = "RIC VTH reported that the xapp was deleted."
+ }
+
+}
+catch(err) {
+ deleted = false
+}
+
+execution.setVariable("deleted", deleted);
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:sequenceFlow id="SequenceFlow_1hq011g" sourceRef="checkDelete" targetRef="ExclusiveGateway_0df2lf1" />
+ <bpmn:task id="ServiceTask_0yfqtmz" name="UTIL:LogTestResult">
+ <bpmn:incoming>SequenceFlow_1ivi698</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_1s62i1u</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1czqxne</bpmn:outgoing>
+ </bpmn:task>
+ <bpmn:task id="delete" name="LVTH:RIC:Delete">
+ <bpmn:incoming>SequenceFlow_1xykozf</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1rdc2w4</bpmn:outgoing>
+ </bpmn:task>
+ </bpmn:process>
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Delete_xAPP_Test">
+ <bpmndi:BPMNShape id="StartEvent_0cebtfp_di" bpmnElement="StartEvent_0cebtfp">
+ <dc:Bounds x="156" y="103" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0rqy7r1_di" bpmnElement="verify">
+ <dc:Bounds x="234" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_04n8k6e_di" bpmnElement="ExclusiveGateway_04n8k6e" isMarkerVisible="true">
+ <dc:Bounds x="385" y="96" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_03vt4gu_di" bpmnElement="SequenceFlow_03vt4gu">
+ <di:waypoint x="192" y="121" />
+ <di:waypoint x="234" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1gceb7d_di" bpmnElement="SequenceFlow_1gceb7d">
+ <di:waypoint x="334" y="121" />
+ <di:waypoint x="385" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1xykozf_di" bpmnElement="SequenceFlow_1xykozf">
+ <di:waypoint x="435" y="121" />
+ <di:waypoint x="489" y="121" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="434" y="100" width="46" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_1d0llw5_di" bpmnElement="ScriptTask_1d0llw5">
+ <dc:Bounds x="749" y="336" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0zeodmx_di" bpmnElement="ScriptTask_0zeodmx">
+ <dc:Bounds x="878" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_0wf03rq_di" bpmnElement="EndEvent_0wf03rq">
+ <dc:Bounds x="1169" y="103" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1ivi698_di" bpmnElement="SequenceFlow_1ivi698">
+ <di:waypoint x="849" y="376" />
+ <di:waypoint x="1065" y="376" />
+ <di:waypoint x="1065" y="161" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1s62i1u_di" bpmnElement="SequenceFlow_1s62i1u">
+ <di:waypoint x="978" y="121" />
+ <di:waypoint x="1015" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1czqxne_di" bpmnElement="SequenceFlow_1czqxne">
+ <di:waypoint x="1115" y="121" />
+ <di:waypoint x="1169" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0df2lf1_di" bpmnElement="ExclusiveGateway_0df2lf1" isMarkerVisible="true">
+ <dc:Bounds x="774" y="96" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1rdc2w4_di" bpmnElement="SequenceFlow_1rdc2w4">
+ <di:waypoint x="589" y="121" />
+ <di:waypoint x="629" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1fcorq2_di" bpmnElement="SequenceFlow_1fcorq2">
+ <di:waypoint x="824" y="121" />
+ <di:waypoint x="878" y="121" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="827" y="99" width="38" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_035k1kv_di" bpmnElement="SequenceFlow_035k1kv">
+ <di:waypoint x="410" y="146" />
+ <di:waypoint x="410" y="376" />
+ <di:waypoint x="749" y="376" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_11htm0z_di" bpmnElement="SequenceFlow_11htm0z">
+ <di:waypoint x="799" y="146" />
+ <di:waypoint x="799" y="336" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_0td2q01_di" bpmnElement="checkDelete">
+ <dc:Bounds x="629" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1hq011g_di" bpmnElement="SequenceFlow_1hq011g">
+ <di:waypoint x="729" y="121" />
+ <di:waypoint x="774" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Task_1tklwc0_di" bpmnElement="ServiceTask_0yfqtmz">
+ <dc:Bounds x="1015" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Task_026zsim_di" bpmnElement="delete">
+ <dc:Bounds x="489" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/oran-ric-test-head/workflows/Deploy_xAPP_Test.bpmn b/oran-ric-test-head/workflows/Deploy_xAPP_Test.bpmn
index bf2b3d9..9cefb0e 100644
--- a/oran-ric-test-head/workflows/Deploy_xAPP_Test.bpmn
+++ b/oran-ric-test-head/workflows/Deploy_xAPP_Test.bpmn
@@ -1,463 +1,463 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0cpfikh" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.0.1">
- <bpmn:process id="Deploy_xAPP_Test" name="Deploy xAPP Test" isExecutable="true">
- <bpmn:startEvent id="StartEvent_1" camunda:asyncBefore="true">
- <bpmn:outgoing>SequenceFlow_0st7o3p</bpmn:outgoing>
- </bpmn:startEvent>
- <bpmn:sequenceFlow id="SequenceFlow_0st7o3p" sourceRef="StartEvent_1" targetRef="ScriptTask_08k2jy1" />
- <bpmn:sequenceFlow id="SequenceFlow_0j9397y" sourceRef="ready" targetRef="verify_ready" />
- <bpmn:sequenceFlow id="SequenceFlow_0e1kt1e" sourceRef="verify_ready" targetRef="ExclusiveGateway_1u1b164" />
- <bpmn:sequenceFlow id="SequenceFlow_0zxo4fr" name="Ready" sourceRef="ExclusiveGateway_1u1b164" targetRef="first_list">
- <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ready}</bpmn:conditionExpression>
- </bpmn:sequenceFlow>
- <bpmn:sequenceFlow id="SequenceFlow_1chkfad" name="Not Ready" sourceRef="ExclusiveGateway_1u1b164" targetRef="mark_failure" />
- <bpmn:sequenceFlow id="SequenceFlow_0s6ntyv" sourceRef="first_list" targetRef="alreadyDeployed" />
- <bpmn:sequenceFlow id="SequenceFlow_1oze54u" sourceRef="deploy" targetRef="IntermediateThrowEvent_0aoxbne" />
- <bpmn:sequenceFlow id="SequenceFlow_07jnolr" sourceRef="second_list" targetRef="verify_deploy" />
- <bpmn:sequenceFlow id="SequenceFlow_08wazou" sourceRef="verify_deploy" targetRef="ExclusiveGateway_05eh6vk" />
- <bpmn:sequenceFlow id="SequenceFlow_0nfij3v" name="xAPP deploy failed" sourceRef="ExclusiveGateway_05eh6vk" targetRef="mark_failure" />
- <bpmn:sequenceFlow id="SequenceFlow_18bpwal" sourceRef="mark_success" targetRef="log_test_result" />
- <bpmn:sequenceFlow id="SequenceFlow_07rma3l" sourceRef="IntermediateThrowEvent_0aoxbne" targetRef="second_list" />
- <bpmn:sequenceFlow id="SequenceFlow_01cc25d" sourceRef="log_test_result" targetRef="EndEvent_0lg4zm4" />
- <bpmn:sequenceFlow id="SequenceFlow_1u9jrl1" sourceRef="mark_failure" targetRef="log_test_result" />
- <bpmn:sequenceFlow id="SequenceFlow_08hkwrc" name="xAPP deployed" sourceRef="ExclusiveGateway_05eh6vk" targetRef="mark_success">
- <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${deployed}</bpmn:conditionExpression>
- </bpmn:sequenceFlow>
- <bpmn:sequenceFlow id="SequenceFlow_18luk66" sourceRef="ScriptTask_08k2jy1" targetRef="ExclusiveGateway_10o6bsf" />
- <bpmn:sequenceFlow id="SequenceFlow_1y69zdb" sourceRef="ExclusiveGateway_10o6bsf" targetRef="ready">
- <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${validInput}</bpmn:conditionExpression>
- </bpmn:sequenceFlow>
- <bpmn:sequenceFlow id="SequenceFlow_0g7zkcv" name="Bad Input" sourceRef="ExclusiveGateway_10o6bsf" targetRef="mark_failure" />
- <bpmn:sequenceFlow id="SequenceFlow_08v4jva" name="Not Deployed" sourceRef="ExclusiveGateway_0ridg34" targetRef="deploy">
- <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!alreadyDeployed}</bpmn:conditionExpression>
- </bpmn:sequenceFlow>
- <bpmn:sequenceFlow id="SequenceFlow_0dscvt7" name="Already Deployed" sourceRef="ExclusiveGateway_0ridg34" targetRef="mark_failure" />
- <bpmn:sequenceFlow id="SequenceFlow_0i3et2n" sourceRef="alreadyDeployed" targetRef="ExclusiveGateway_0ridg34" />
- <bpmn:scriptTask id="verify_ready" name="Verify xAPP Manager is Ready" scriptFormat="JavaScript">
- <bpmn:incoming>SequenceFlow_0j9397y</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_0e1kt1e</bpmn:outgoing>
- <bpmn:script>var System = java.lang.System
-
-var readyVthId = 'ready'
-var testData = execution.getVariable("testData")
-var vthInput = execution.getVariable("vthInput")
-var ready = false;
-var testResultMessage = "RIC VTH reported that xAppManager is not ready."
-
-
-
-try {
- //get output from ready call
- var testExecution = execution.getVariable('otf-execution-testExecution');
- var data = null;
- testExecution.testHeadResults.forEach(function(item, index, array) {
- if(item.bpmnVthTaskId == readyVthId ){
- data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];
- }
- })
-
- if(data === 200){
- ready = true
- testResultMessage = "RIC VTH reported that xAppManager is ready."
- }
-
-}
-catch(err) {
- ready = false
-}
-
-execution.setVariable("ready", ready);
-execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
- </bpmn:scriptTask>
- <bpmn:scriptTask id="mark_failure" name="Mark Test Failure" scriptFormat="JavaScript">
- <bpmn:incoming>SequenceFlow_1chkfad</bpmn:incoming>
- <bpmn:incoming>SequenceFlow_0nfij3v</bpmn:incoming>
- <bpmn:incoming>SequenceFlow_0g7zkcv</bpmn:incoming>
- <bpmn:incoming>SequenceFlow_0dscvt7</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_1u9jrl1</bpmn:outgoing>
- <bpmn:script>execution.setVariable("testResult", "FAILED")</bpmn:script>
- </bpmn:scriptTask>
- <bpmn:scriptTask id="mark_success" name="Mark Test Success" scriptFormat="JavaScript">
- <bpmn:incoming>SequenceFlow_08hkwrc</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_18bpwal</bpmn:outgoing>
- <bpmn:script>execution.setVariable("testResult", "SUCCESS")</bpmn:script>
- </bpmn:scriptTask>
- <bpmn:scriptTask id="verify_deploy" name="Compare xAPP list and validate test" scriptFormat="JavaScript">
- <bpmn:incoming>SequenceFlow_07jnolr</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_08wazou</bpmn:outgoing>
- <bpmn:script>var System = java.lang.System
-
-var deploy = 'deploy'
-var secondList = 'second_list'
-var testData = execution.getVariable("testData")
-var vthInput = execution.getVariable("vthInput")
-var deployed = false;
-var testResultMessage = "RIC VTH reported that xApp is not deployed."
-var appName = testData['appName']
-
-
-
-try {
- //get output from deploy call
- var testExecution = execution.getVariable('otf-execution-testExecution');
- data = null;
- testExecution.testHeadResults.forEach(function(item, index, array) {
- if(item.bpmnVthTaskId == deploy ){
- data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];
- }
- })
-
- if(data === 201){
- testResultMessage = "RIC VTH reported that xAppManager deployment call succeeded."
-
- //get output from secondList call
- var testExecution = execution.getVariable('otf-execution-testExecution');
- data = null;
- testExecution.testHeadResults.forEach(function(item, index, array) {
- if(item.bpmnVthTaskId == secondList ){
- data = item['testHeadResponse']['vthResponse']['resultData']['resultOutput'];
- }
- })
-
- instance = null
- data.forEach(function(item, index, array) {
- if(item.name === appName){
- instance = item
- testResultMessage = "RIC VTH reported that xApp is present."
- }
- })
-
- if(instance !== null && instance.status === 'deployed'){
- deployed = true
- testResultMessage = "RIC VTH reported that xApp is deployed."
- testDetails = execution.getVariable("testDetails")
- testDetails.put("instance", instance);
- execution.setVariable("testDetails", testDetails)
- }
- else{
- deployed = false
- testResultMessage = "RIC VTH reported that xApp was deployed, but xApp instance was either null or not deployed. See vth results for further information."
- }
-
- }
-
-}
-catch(err) {
- deployed = false
- testResultMessage = "Couldn't verify is xApp was deployed. Check Test Results" + err
-}
-
-execution.setVariable("deployed", deployed);
-execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
- </bpmn:scriptTask>
- <bpmn:scriptTask id="ScriptTask_08k2jy1" name="Verify Inputs" scriptFormat="JavaScript">
- <bpmn:incoming>SequenceFlow_0st7o3p</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_18luk66</bpmn:outgoing>
- <bpmn:script>var System = java.lang.System
-
-var deployVthId = 'deploy'
-var testData = execution.getVariable("testData")
-var vthInput = execution.getVariable("vthInput")
-var validInput = false;
-var testResultMessage = "";
-
-try{
-
- var appName = testData['appName'];
- var waitDurationSec = testData['waitDurationSec'];
-
- if(typeof appName !== 'string' || appName.trim() === ''){
- System.out.println("appName is not a string, or empty string")
- throw Error("appName is not a string, or empty string")
- }
-
- if(typeof waitDurationSec !== 'number' || waitDurationSec < 0){
- System.out.println("not a number")
- throw Error("waitDurationSec is not a number greater than 0")
- }
-
- validInput = true
-
- vthInput[deployVthId].name = appName
- var timer = "PT" + waitDurationSec + "S"
- System.out.println("timer " + timer)
- execution.setVariable("timer", timer)
-}
-catch(err){
- System.out.println(err)
- validInput = false
- testResultMessage = "Invalid input params. error: " + err;
- execution.setVariable("testResult", "FAILED");
-}
-
-execution.setVariable("validInput", validInput)
-execution.setVariable("testResultMessage", testResultMessage)</bpmn:script>
- </bpmn:scriptTask>
- <bpmn:scriptTask id="alreadyDeployed" name="Check if xAPP is already deployed" scriptFormat="JavaScript">
- <bpmn:incoming>SequenceFlow_0s6ntyv</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_0i3et2n</bpmn:outgoing>
- <bpmn:script>var System = java.lang.System
-
-var firstList = 'first_list'
-var testData = execution.getVariable("testData")
-var vthInput = execution.getVariable("vthInput")
-var alreadyDeployed = true;
-var testResultMessage = "RIC VTH reported that xApp is already deployed."
-var appName = testData['appName']
-
-
-
-try {
- //get output from firstList call
- var testExecution = execution.getVariable('otf-execution-testExecution');
- var data = null;
- testExecution.testHeadResults.forEach(function(item, index, array) {
- if(item.bpmnVthTaskId == firstList ){
- data = item['testHeadResponse']['vthResponse']['resultData']['resultOutput'];
- }
- })
-
- var instance = null
- data.forEach(function(item, index, array) {
- if(item.name === appName){
- instance = item
- testResultMessage = "RIC VTH reported that xApp is already present."
- }
- })
-
- if(instance === null){
- alreadyDeployed = false
- testResultMessage = "RIC VTH reported that xApp is not present."
- }
-
-
-}
-catch(err) {
- alreadyDeployed = true
- testResultMessage = "Couldn't verify is xApp was already deployed."
-}
-
-execution.setVariable("alreadyDeployed", alreadyDeployed);
-execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
- </bpmn:scriptTask>
- <bpmn:exclusiveGateway id="ExclusiveGateway_1u1b164" default="SequenceFlow_1chkfad">
- <bpmn:incoming>SequenceFlow_0e1kt1e</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_0zxo4fr</bpmn:outgoing>
- <bpmn:outgoing>SequenceFlow_1chkfad</bpmn:outgoing>
- </bpmn:exclusiveGateway>
- <bpmn:exclusiveGateway id="ExclusiveGateway_05eh6vk" default="SequenceFlow_0nfij3v">
- <bpmn:incoming>SequenceFlow_08wazou</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_0nfij3v</bpmn:outgoing>
- <bpmn:outgoing>SequenceFlow_08hkwrc</bpmn:outgoing>
- </bpmn:exclusiveGateway>
- <bpmn:exclusiveGateway id="ExclusiveGateway_10o6bsf" default="SequenceFlow_0g7zkcv">
- <bpmn:incoming>SequenceFlow_18luk66</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_1y69zdb</bpmn:outgoing>
- <bpmn:outgoing>SequenceFlow_0g7zkcv</bpmn:outgoing>
- </bpmn:exclusiveGateway>
- <bpmn:exclusiveGateway id="ExclusiveGateway_0ridg34" default="SequenceFlow_0dscvt7">
- <bpmn:incoming>SequenceFlow_0i3et2n</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_08v4jva</bpmn:outgoing>
- <bpmn:outgoing>SequenceFlow_0dscvt7</bpmn:outgoing>
- </bpmn:exclusiveGateway>
- <bpmn:intermediateCatchEvent id="IntermediateThrowEvent_0aoxbne">
- <bpmn:incoming>SequenceFlow_1oze54u</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_07rma3l</bpmn:outgoing>
- <bpmn:timerEventDefinition>
- <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">${timer}</bpmn:timeDuration>
- </bpmn:timerEventDefinition>
- </bpmn:intermediateCatchEvent>
- <bpmn:endEvent id="EndEvent_0lg4zm4">
- <bpmn:incoming>SequenceFlow_01cc25d</bpmn:incoming>
- <bpmn:terminateEventDefinition />
- </bpmn:endEvent>
- <bpmn:serviceTask id="ready" name="VTH:RIC:Ready" camunda:delegateExpression="${callTestHeadDelegate}">
- <bpmn:incoming>SequenceFlow_1y69zdb</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_0j9397y</bpmn:outgoing>
- </bpmn:serviceTask>
- <bpmn:serviceTask id="first_list" name="VTH:RIC:List" camunda:delegateExpression="${callTestHeadDelegate}">
- <bpmn:incoming>SequenceFlow_0zxo4fr</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_0s6ntyv</bpmn:outgoing>
- </bpmn:serviceTask>
- <bpmn:serviceTask id="deploy" name="VTH:RIC:Deploy" camunda:delegateExpression="${callTestHeadDelegate}">
- <bpmn:incoming>SequenceFlow_08v4jva</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_1oze54u</bpmn:outgoing>
- </bpmn:serviceTask>
- <bpmn:serviceTask id="second_list" name="VTH:RIC:List" camunda:delegateExpression="${callTestHeadDelegate}">
- <bpmn:incoming>SequenceFlow_07rma3l</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_07jnolr</bpmn:outgoing>
- </bpmn:serviceTask>
- <bpmn:serviceTask id="log_test_result" name="UTIL:LogTestResult" camunda:delegateExpression="${logTestResultDelegate}">
- <bpmn:incoming>SequenceFlow_18bpwal</bpmn:incoming>
- <bpmn:incoming>SequenceFlow_1u9jrl1</bpmn:incoming>
- <bpmn:outgoing>SequenceFlow_01cc25d</bpmn:outgoing>
- </bpmn:serviceTask>
- </bpmn:process>
- <bpmndi:BPMNDiagram id="BPMNDiagram_1">
- <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Deploy_xAPP_Test">
- <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
- <dc:Bounds x="156" y="190" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_01o5d6n_di" bpmnElement="verify_ready">
- <dc:Bounds x="660" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ExclusiveGateway_1u1b164_di" bpmnElement="ExclusiveGateway_1u1b164" isMarkerVisible="true">
- <dc:Bounds x="804" y="183" width="50" height="50" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="IntermediateCatchEvent_0o4pf4x_di" bpmnElement="IntermediateThrowEvent_0aoxbne">
- <dc:Bounds x="1455" y="190" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ExclusiveGateway_05eh6vk_di" bpmnElement="ExclusiveGateway_05eh6vk" isMarkerVisible="true">
- <dc:Bounds x="1884" y="183" width="50" height="50" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_0iya1du_di" bpmnElement="mark_failure">
- <dc:Bounds x="1859" y="423" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_1dygfw7_di" bpmnElement="mark_success">
- <dc:Bounds x="2069" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="EndEvent_15niqin_di" bpmnElement="EndEvent_0lg4zm4">
- <dc:Bounds x="2407" y="190" width="36" height="36" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_0qmq6pn_di" bpmnElement="verify_deploy">
- <dc:Bounds x="1728" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Task_0smfzp7_di" bpmnElement="ready">
- <dc:Bounds x="508" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Task_0p2tcjd_di" bpmnElement="first_list">
- <dc:Bounds x="905" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Task_14wupjq_di" bpmnElement="deploy">
- <dc:Bounds x="1288" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Task_1wygysw_di" bpmnElement="second_list">
- <dc:Bounds x="1563" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="Task_0lcfr55_di" bpmnElement="log_test_result">
- <dc:Bounds x="2253" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_08k2jy1_di" bpmnElement="ScriptTask_08k2jy1">
- <dc:Bounds x="240" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ExclusiveGateway_10o6bsf_di" bpmnElement="ExclusiveGateway_10o6bsf" isMarkerVisible="true">
- <dc:Bounds x="381" y="183" width="50" height="50" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ExclusiveGateway_0ridg34_di" bpmnElement="ExclusiveGateway_0ridg34" isMarkerVisible="true">
- <dc:Bounds x="1165" y="183" width="50" height="50" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ScriptTask_0snkxz0_di" bpmnElement="alreadyDeployed">
- <dc:Bounds x="1040" y="168" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0st7o3p_di" bpmnElement="SequenceFlow_0st7o3p">
- <di:waypoint x="192" y="208" />
- <di:waypoint x="240" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0j9397y_di" bpmnElement="SequenceFlow_0j9397y">
- <di:waypoint x="608" y="208" />
- <di:waypoint x="660" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0e1kt1e_di" bpmnElement="SequenceFlow_0e1kt1e">
- <di:waypoint x="760" y="208" />
- <di:waypoint x="804" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0zxo4fr_di" bpmnElement="SequenceFlow_0zxo4fr">
- <di:waypoint x="854" y="208" />
- <di:waypoint x="905" y="208" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="854" y="189" width="33" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1chkfad_di" bpmnElement="SequenceFlow_1chkfad">
- <di:waypoint x="829" y="233" />
- <di:waypoint x="829" y="463" />
- <di:waypoint x="1859" y="463" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="839" y="347" width="53" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0s6ntyv_di" bpmnElement="SequenceFlow_0s6ntyv">
- <di:waypoint x="1005" y="208" />
- <di:waypoint x="1040" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1oze54u_di" bpmnElement="SequenceFlow_1oze54u">
- <di:waypoint x="1388" y="208" />
- <di:waypoint x="1455" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_07jnolr_di" bpmnElement="SequenceFlow_07jnolr">
- <di:waypoint x="1663" y="208" />
- <di:waypoint x="1728" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_08wazou_di" bpmnElement="SequenceFlow_08wazou">
- <di:waypoint x="1828" y="208" />
- <di:waypoint x="1884" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0nfij3v_di" bpmnElement="SequenceFlow_0nfij3v">
- <di:waypoint x="1909" y="233" />
- <di:waypoint x="1909" y="423" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1924" y="272" width="63" height="27" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_18bpwal_di" bpmnElement="SequenceFlow_18bpwal">
- <di:waypoint x="2169" y="208" />
- <di:waypoint x="2253" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_07rma3l_di" bpmnElement="SequenceFlow_07rma3l">
- <di:waypoint x="1491" y="208" />
- <di:waypoint x="1563" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_01cc25d_di" bpmnElement="SequenceFlow_01cc25d">
- <di:waypoint x="2353" y="208" />
- <di:waypoint x="2407" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1u9jrl1_di" bpmnElement="SequenceFlow_1u9jrl1">
- <di:waypoint x="1959" y="463" />
- <di:waypoint x="2303" y="463" />
- <di:waypoint x="2303" y="248" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_08hkwrc_di" bpmnElement="SequenceFlow_08hkwrc">
- <di:waypoint x="1934" y="208" />
- <di:waypoint x="2069" y="208" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1964" y="190" width="75" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_18luk66_di" bpmnElement="SequenceFlow_18luk66">
- <di:waypoint x="340" y="208" />
- <di:waypoint x="381" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1y69zdb_di" bpmnElement="SequenceFlow_1y69zdb">
- <di:waypoint x="431" y="208" />
- <di:waypoint x="508" y="208" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0g7zkcv_di" bpmnElement="SequenceFlow_0g7zkcv">
- <di:waypoint x="406" y="233" />
- <di:waypoint x="406" y="463" />
- <di:waypoint x="1859" y="463" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="416" y="360" width="49" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_08v4jva_di" bpmnElement="SequenceFlow_08v4jva">
- <di:waypoint x="1215" y="208" />
- <di:waypoint x="1288" y="208" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1218" y="190" width="67" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0dscvt7_di" bpmnElement="SequenceFlow_0dscvt7">
- <di:waypoint x="1190" y="233" />
- <di:waypoint x="1190" y="463" />
- <di:waypoint x="1859" y="463" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1205" y="357" width="86" height="14" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_0i3et2n_di" bpmnElement="SequenceFlow_0i3et2n">
- <di:waypoint x="1140" y="208" />
- <di:waypoint x="1165" y="208" />
- </bpmndi:BPMNEdge>
- </bpmndi:BPMNPlane>
- </bpmndi:BPMNDiagram>
-</bpmn:definitions>
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0cpfikh" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.0.1">
+ <bpmn:process id="Deploy_xAPP_Test" name="Deploy xAPP Test" isExecutable="true">
+ <bpmn:startEvent id="StartEvent_1" camunda:asyncBefore="true">
+ <bpmn:outgoing>SequenceFlow_0st7o3p</bpmn:outgoing>
+ </bpmn:startEvent>
+ <bpmn:sequenceFlow id="SequenceFlow_0st7o3p" sourceRef="StartEvent_1" targetRef="ScriptTask_08k2jy1" />
+ <bpmn:sequenceFlow id="SequenceFlow_0j9397y" sourceRef="ready" targetRef="verify_ready" />
+ <bpmn:sequenceFlow id="SequenceFlow_0e1kt1e" sourceRef="verify_ready" targetRef="ExclusiveGateway_1u1b164" />
+ <bpmn:sequenceFlow id="SequenceFlow_0zxo4fr" name="Ready" sourceRef="ExclusiveGateway_1u1b164" targetRef="first_list">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ready}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_1chkfad" name="Not Ready" sourceRef="ExclusiveGateway_1u1b164" targetRef="mark_failure" />
+ <bpmn:sequenceFlow id="SequenceFlow_0s6ntyv" sourceRef="first_list" targetRef="alreadyDeployed" />
+ <bpmn:sequenceFlow id="SequenceFlow_1oze54u" sourceRef="deploy" targetRef="IntermediateThrowEvent_0aoxbne" />
+ <bpmn:sequenceFlow id="SequenceFlow_07jnolr" sourceRef="second_list" targetRef="verify_deploy" />
+ <bpmn:sequenceFlow id="SequenceFlow_08wazou" sourceRef="verify_deploy" targetRef="ExclusiveGateway_05eh6vk" />
+ <bpmn:sequenceFlow id="SequenceFlow_0nfij3v" name="xAPP deploy failed" sourceRef="ExclusiveGateway_05eh6vk" targetRef="mark_failure" />
+ <bpmn:sequenceFlow id="SequenceFlow_18bpwal" sourceRef="mark_success" targetRef="log_test_result" />
+ <bpmn:sequenceFlow id="SequenceFlow_07rma3l" sourceRef="IntermediateThrowEvent_0aoxbne" targetRef="second_list" />
+ <bpmn:sequenceFlow id="SequenceFlow_01cc25d" sourceRef="log_test_result" targetRef="EndEvent_0lg4zm4" />
+ <bpmn:sequenceFlow id="SequenceFlow_1u9jrl1" sourceRef="mark_failure" targetRef="log_test_result" />
+ <bpmn:sequenceFlow id="SequenceFlow_08hkwrc" name="xAPP deployed" sourceRef="ExclusiveGateway_05eh6vk" targetRef="mark_success">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${deployed}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_18luk66" sourceRef="ScriptTask_08k2jy1" targetRef="ExclusiveGateway_10o6bsf" />
+ <bpmn:sequenceFlow id="SequenceFlow_1y69zdb" sourceRef="ExclusiveGateway_10o6bsf" targetRef="ready">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${validInput}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_0g7zkcv" name="Bad Input" sourceRef="ExclusiveGateway_10o6bsf" targetRef="mark_failure" />
+ <bpmn:sequenceFlow id="SequenceFlow_08v4jva" name="Not Deployed" sourceRef="ExclusiveGateway_0ridg34" targetRef="deploy">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!alreadyDeployed}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_0dscvt7" name="Already Deployed" sourceRef="ExclusiveGateway_0ridg34" targetRef="mark_failure" />
+ <bpmn:sequenceFlow id="SequenceFlow_0i3et2n" sourceRef="alreadyDeployed" targetRef="ExclusiveGateway_0ridg34" />
+ <bpmn:scriptTask id="verify_ready" name="Verify xAPP Manager is Ready" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_0j9397y</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0e1kt1e</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var readyVthId = 'ready'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var ready = false;
+var testResultMessage = "RIC VTH reported that xAppManager is not ready."
+
+
+
+try {
+ //get output from ready call
+ var testExecution = execution.getVariable('otf-execution-testExecution');
+ var data = null;
+ testExecution.testHeadResults.forEach(function(item, index, array) {
+ if(item.bpmnVthTaskId == readyVthId ){
+ data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];
+ }
+ })
+
+ if(data === 200){
+ ready = true
+ testResultMessage = "RIC VTH reported that xAppManager is ready."
+ }
+
+}
+catch(err) {
+ ready = false
+}
+
+execution.setVariable("ready", ready);
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="mark_failure" name="Mark Test Failure" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_1chkfad</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_0nfij3v</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_0g7zkcv</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_0dscvt7</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1u9jrl1</bpmn:outgoing>
+ <bpmn:script>execution.setVariable("testResult", "FAILED")</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="mark_success" name="Mark Test Success" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_08hkwrc</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_18bpwal</bpmn:outgoing>
+ <bpmn:script>execution.setVariable("testResult", "SUCCESS")</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="verify_deploy" name="Compare xAPP list and validate test" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_07jnolr</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_08wazou</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var deploy = 'deploy'
+var secondList = 'second_list'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var deployed = false;
+var testResultMessage = "RIC VTH reported that xApp is not deployed."
+var appName = testData['appName']
+
+
+
+try {
+ //get output from deploy call
+ var testExecution = execution.getVariable('otf-execution-testExecution');
+ data = null;
+ testExecution.testHeadResults.forEach(function(item, index, array) {
+ if(item.bpmnVthTaskId == deploy ){
+ data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];
+ }
+ })
+
+ if(data === 201){
+ testResultMessage = "RIC VTH reported that xAppManager deployment call succeeded."
+
+ //get output from secondList call
+ var testExecution = execution.getVariable('otf-execution-testExecution');
+ data = null;
+ testExecution.testHeadResults.forEach(function(item, index, array) {
+ if(item.bpmnVthTaskId == secondList ){
+ data = item['testHeadResponse']['vthResponse']['resultData']['resultOutput'];
+ }
+ })
+
+ instance = null
+ data.forEach(function(item, index, array) {
+ if(item.name === appName){
+ instance = item
+ testResultMessage = "RIC VTH reported that xApp is present."
+ }
+ })
+
+ if(instance !== null && instance.status === 'deployed'){
+ deployed = true
+ testResultMessage = "RIC VTH reported that xApp is deployed."
+ testDetails = execution.getVariable("testDetails")
+ testDetails.put("instance", instance);
+ execution.setVariable("testDetails", testDetails)
+ }
+ else{
+ deployed = false
+ testResultMessage = "RIC VTH reported that xApp was deployed, but xApp instance was either null or not deployed. See vth results for further information."
+ }
+
+ }
+
+}
+catch(err) {
+ deployed = false
+ testResultMessage = "Couldn't verify is xApp was deployed. Check Test Results" + err
+}
+
+execution.setVariable("deployed", deployed);
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="ScriptTask_08k2jy1" name="Verify Inputs" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_0st7o3p</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_18luk66</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var deployVthId = 'deploy'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var validInput = false;
+var testResultMessage = "";
+
+try{
+
+ var appName = testData['appName'];
+ var waitDurationSec = testData['waitDurationSec'];
+
+ if(typeof appName !== 'string' || appName.trim() === ''){
+ System.out.println("appName is not a string, or empty string")
+ throw Error("appName is not a string, or empty string")
+ }
+
+ if(typeof waitDurationSec !== 'number' || waitDurationSec < 0){
+ System.out.println("not a number")
+ throw Error("waitDurationSec is not a number greater than 0")
+ }
+
+ validInput = true
+
+ vthInput[deployVthId].name = appName
+ var timer = "PT" + waitDurationSec + "S"
+ System.out.println("timer " + timer)
+ execution.setVariable("timer", timer)
+}
+catch(err){
+ System.out.println(err)
+ validInput = false
+ testResultMessage = "Invalid input params. error: " + err;
+ execution.setVariable("testResult", "FAILED");
+}
+
+execution.setVariable("validInput", validInput)
+execution.setVariable("testResultMessage", testResultMessage)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="alreadyDeployed" name="Check if xAPP is already deployed" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_0s6ntyv</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0i3et2n</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var firstList = 'first_list'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var alreadyDeployed = true;
+var testResultMessage = "RIC VTH reported that xApp is already deployed."
+var appName = testData['appName']
+
+
+
+try {
+ //get output from firstList call
+ var testExecution = execution.getVariable('otf-execution-testExecution');
+ var data = null;
+ testExecution.testHeadResults.forEach(function(item, index, array) {
+ if(item.bpmnVthTaskId == firstList ){
+ data = item['testHeadResponse']['vthResponse']['resultData']['resultOutput'];
+ }
+ })
+
+ var instance = null
+ data.forEach(function(item, index, array) {
+ if(item.name === appName){
+ instance = item
+ testResultMessage = "RIC VTH reported that xApp is already present."
+ }
+ })
+
+ if(instance === null){
+ alreadyDeployed = false
+ testResultMessage = "RIC VTH reported that xApp is not present."
+ }
+
+
+}
+catch(err) {
+ alreadyDeployed = true
+ testResultMessage = "Couldn't verify is xApp was already deployed."
+}
+
+execution.setVariable("alreadyDeployed", alreadyDeployed);
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:exclusiveGateway id="ExclusiveGateway_1u1b164" default="SequenceFlow_1chkfad">
+ <bpmn:incoming>SequenceFlow_0e1kt1e</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0zxo4fr</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_1chkfad</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:exclusiveGateway id="ExclusiveGateway_05eh6vk" default="SequenceFlow_0nfij3v">
+ <bpmn:incoming>SequenceFlow_08wazou</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0nfij3v</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_08hkwrc</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:exclusiveGateway id="ExclusiveGateway_10o6bsf" default="SequenceFlow_0g7zkcv">
+ <bpmn:incoming>SequenceFlow_18luk66</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1y69zdb</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_0g7zkcv</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:exclusiveGateway id="ExclusiveGateway_0ridg34" default="SequenceFlow_0dscvt7">
+ <bpmn:incoming>SequenceFlow_0i3et2n</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_08v4jva</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_0dscvt7</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:intermediateCatchEvent id="IntermediateThrowEvent_0aoxbne">
+ <bpmn:incoming>SequenceFlow_1oze54u</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_07rma3l</bpmn:outgoing>
+ <bpmn:timerEventDefinition>
+ <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">${timer}</bpmn:timeDuration>
+ </bpmn:timerEventDefinition>
+ </bpmn:intermediateCatchEvent>
+ <bpmn:endEvent id="EndEvent_0lg4zm4">
+ <bpmn:incoming>SequenceFlow_01cc25d</bpmn:incoming>
+ <bpmn:terminateEventDefinition />
+ </bpmn:endEvent>
+ <bpmn:serviceTask id="ready" name="LVTH:RIC:Ready" camunda:delegateExpression="${callTestHeadDelegate}">
+ <bpmn:incoming>SequenceFlow_1y69zdb</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0j9397y</bpmn:outgoing>
+ </bpmn:serviceTask>
+ <bpmn:serviceTask id="first_list" name="LVTH:RIC:List" camunda:delegateExpression="${callTestHeadDelegate}">
+ <bpmn:incoming>SequenceFlow_0zxo4fr</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_0s6ntyv</bpmn:outgoing>
+ </bpmn:serviceTask>
+ <bpmn:serviceTask id="deploy" name="LVTH:RIC:Deploy" camunda:delegateExpression="${callTestHeadDelegate}">
+ <bpmn:incoming>SequenceFlow_08v4jva</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1oze54u</bpmn:outgoing>
+ </bpmn:serviceTask>
+ <bpmn:serviceTask id="second_list" name="LVTH:RIC:List" camunda:delegateExpression="${callTestHeadDelegate}">
+ <bpmn:incoming>SequenceFlow_07rma3l</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_07jnolr</bpmn:outgoing>
+ </bpmn:serviceTask>
+ <bpmn:serviceTask id="log_test_result" name="UTIL:LogTestResult" camunda:delegateExpression="${logTestResultDelegate}">
+ <bpmn:incoming>SequenceFlow_18bpwal</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_1u9jrl1</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_01cc25d</bpmn:outgoing>
+ </bpmn:serviceTask>
+ </bpmn:process>
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Deploy_xAPP_Test">
+ <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
+ <dc:Bounds x="156" y="190" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_01o5d6n_di" bpmnElement="verify_ready">
+ <dc:Bounds x="660" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_1u1b164_di" bpmnElement="ExclusiveGateway_1u1b164" isMarkerVisible="true">
+ <dc:Bounds x="804" y="183" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="IntermediateCatchEvent_0o4pf4x_di" bpmnElement="IntermediateThrowEvent_0aoxbne">
+ <dc:Bounds x="1455" y="190" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_05eh6vk_di" bpmnElement="ExclusiveGateway_05eh6vk" isMarkerVisible="true">
+ <dc:Bounds x="1884" y="183" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0iya1du_di" bpmnElement="mark_failure">
+ <dc:Bounds x="1859" y="423" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_1dygfw7_di" bpmnElement="mark_success">
+ <dc:Bounds x="2069" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_15niqin_di" bpmnElement="EndEvent_0lg4zm4">
+ <dc:Bounds x="2407" y="190" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0qmq6pn_di" bpmnElement="verify_deploy">
+ <dc:Bounds x="1728" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Task_0smfzp7_di" bpmnElement="ready">
+ <dc:Bounds x="508" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Task_0p2tcjd_di" bpmnElement="first_list">
+ <dc:Bounds x="905" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Task_14wupjq_di" bpmnElement="deploy">
+ <dc:Bounds x="1288" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Task_1wygysw_di" bpmnElement="second_list">
+ <dc:Bounds x="1563" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Task_0lcfr55_di" bpmnElement="log_test_result">
+ <dc:Bounds x="2253" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_08k2jy1_di" bpmnElement="ScriptTask_08k2jy1">
+ <dc:Bounds x="240" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_10o6bsf_di" bpmnElement="ExclusiveGateway_10o6bsf" isMarkerVisible="true">
+ <dc:Bounds x="381" y="183" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0ridg34_di" bpmnElement="ExclusiveGateway_0ridg34" isMarkerVisible="true">
+ <dc:Bounds x="1165" y="183" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0snkxz0_di" bpmnElement="alreadyDeployed">
+ <dc:Bounds x="1040" y="168" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0st7o3p_di" bpmnElement="SequenceFlow_0st7o3p">
+ <di:waypoint x="192" y="208" />
+ <di:waypoint x="240" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0j9397y_di" bpmnElement="SequenceFlow_0j9397y">
+ <di:waypoint x="608" y="208" />
+ <di:waypoint x="660" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0e1kt1e_di" bpmnElement="SequenceFlow_0e1kt1e">
+ <di:waypoint x="760" y="208" />
+ <di:waypoint x="804" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0zxo4fr_di" bpmnElement="SequenceFlow_0zxo4fr">
+ <di:waypoint x="854" y="208" />
+ <di:waypoint x="905" y="208" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="854" y="189" width="33" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1chkfad_di" bpmnElement="SequenceFlow_1chkfad">
+ <di:waypoint x="829" y="233" />
+ <di:waypoint x="829" y="463" />
+ <di:waypoint x="1859" y="463" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="839" y="347" width="53" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0s6ntyv_di" bpmnElement="SequenceFlow_0s6ntyv">
+ <di:waypoint x="1005" y="208" />
+ <di:waypoint x="1040" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1oze54u_di" bpmnElement="SequenceFlow_1oze54u">
+ <di:waypoint x="1388" y="208" />
+ <di:waypoint x="1455" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_07jnolr_di" bpmnElement="SequenceFlow_07jnolr">
+ <di:waypoint x="1663" y="208" />
+ <di:waypoint x="1728" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_08wazou_di" bpmnElement="SequenceFlow_08wazou">
+ <di:waypoint x="1828" y="208" />
+ <di:waypoint x="1884" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0nfij3v_di" bpmnElement="SequenceFlow_0nfij3v">
+ <di:waypoint x="1909" y="233" />
+ <di:waypoint x="1909" y="423" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1924" y="272" width="63" height="27" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_18bpwal_di" bpmnElement="SequenceFlow_18bpwal">
+ <di:waypoint x="2169" y="208" />
+ <di:waypoint x="2253" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_07rma3l_di" bpmnElement="SequenceFlow_07rma3l">
+ <di:waypoint x="1491" y="208" />
+ <di:waypoint x="1563" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_01cc25d_di" bpmnElement="SequenceFlow_01cc25d">
+ <di:waypoint x="2353" y="208" />
+ <di:waypoint x="2407" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1u9jrl1_di" bpmnElement="SequenceFlow_1u9jrl1">
+ <di:waypoint x="1959" y="463" />
+ <di:waypoint x="2303" y="463" />
+ <di:waypoint x="2303" y="248" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_08hkwrc_di" bpmnElement="SequenceFlow_08hkwrc">
+ <di:waypoint x="1934" y="208" />
+ <di:waypoint x="2069" y="208" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1964" y="190" width="75" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_18luk66_di" bpmnElement="SequenceFlow_18luk66">
+ <di:waypoint x="340" y="208" />
+ <di:waypoint x="381" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1y69zdb_di" bpmnElement="SequenceFlow_1y69zdb">
+ <di:waypoint x="431" y="208" />
+ <di:waypoint x="508" y="208" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0g7zkcv_di" bpmnElement="SequenceFlow_0g7zkcv">
+ <di:waypoint x="406" y="233" />
+ <di:waypoint x="406" y="463" />
+ <di:waypoint x="1859" y="463" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="416" y="360" width="49" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_08v4jva_di" bpmnElement="SequenceFlow_08v4jva">
+ <di:waypoint x="1215" y="208" />
+ <di:waypoint x="1288" y="208" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1218" y="190" width="67" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0dscvt7_di" bpmnElement="SequenceFlow_0dscvt7">
+ <di:waypoint x="1190" y="233" />
+ <di:waypoint x="1190" y="463" />
+ <di:waypoint x="1859" y="463" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1205" y="357" width="86" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0i3et2n_di" bpmnElement="SequenceFlow_0i3et2n">
+ <di:waypoint x="1140" y="208" />
+ <di:waypoint x="1165" y="208" />
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</bpmn:definitions>