aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/csit/plans/holmes/sanity-check/setup.sh66
-rw-r--r--test/csit/plans/holmes/sanity-check/teardown.sh25
-rw-r--r--test/csit/plans/holmes/sanity-check/testplan.txt5
-rw-r--r--test/csit/plans/msb/sanity-check/setup.sh41
-rw-r--r--test/csit/plans/msb/sanity-check/teardown.sh20
-rw-r--r--test/csit/plans/msb/sanity-check/testplan.txt3
-rwxr-xr-xtest/csit/plans/vfc-nfvo-lcm/sanity-check/setup.sh44
-rwxr-xr-xtest/csit/plans/vfc-nfvo-lcm/sanity-check/teardown.sh22
-rw-r--r--test/csit/plans/vfc-nfvo-lcm/sanity-check/testplan.txt3
-rwxr-xr-xtest/csit/scripts/clamp/start_clamp_containers.sh2
-rw-r--r--test/csit/scripts/holmes/engine-management/startup.sh23
-rw-r--r--test/csit/scripts/holmes/rule-management/startup.sh22
-rw-r--r--test/csit/tests/clamp/TCA/data/createTemplate1.json2
-rw-r--r--test/csit/tests/clamp/TCA/data/createTemplate2.json2
-rw-r--r--test/csit/tests/clamp/UIs/data/TCA_template_properties.yml51
-rw-r--r--test/csit/tests/clamp/UIs/test1_create_template.robot82
-rw-r--r--test/csit/tests/clamp/UIs/test2_create_Model.robot (renamed from test/csit/tests/clamp/UIs/test1.robot)31
-rw-r--r--test/csit/tests/holmes/testcase/CommonKeywords/HttpRequest.robot37
-rw-r--r--test/csit/tests/holmes/testcase/EngineMgt/Engine-Keywords.robot34
-rw-r--r--test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot41
-rw-r--r--test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot3
-rw-r--r--test/csit/tests/holmes/testcase/EngineMgt/__init__.txt2
-rw-r--r--test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot81
-rw-r--r--test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot127
-rw-r--r--test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot3
-rw-r--r--test/csit/tests/holmes/testcase/RuleMgt/__init__.txt0
-rw-r--r--test/csit/tests/msb/startup/__init__.robot2
-rw-r--r--test/csit/tests/msb/startup/test1.robot16
-rw-r--r--test/csit/tests/vfc/nfvo-lcm/test.robot14
29 files changed, 786 insertions, 18 deletions
diff --git a/test/csit/plans/holmes/sanity-check/setup.sh b/test/csit/plans/holmes/sanity-check/setup.sh
new file mode 100644
index 000000000..cbe107c16
--- /dev/null
+++ b/test/csit/plans/holmes/sanity-check/setup.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+#
+# Copyright 2017 ZTE Corporation.
+#
+# 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.
+#
+# Place the scripts in run order:
+
+# Download and start MySQL
+docker pull postgresql:9.5
+docker run --name postgres-holmes -p 5432:5432 -e POSTGRES_USER=holmes -e POSTGRES_PASSWORD=holmespwd -d postgres:9.5
+DB_IP=`get-instance-ip.sh postgres-holmes`
+echo DB_IP=${DB_IP}
+
+#login to the onap nexus docker repo
+docker login -u docker -p docker nexus3.onap.org:10001
+
+# Start MSB
+docker run -d -p 8500:8500 --name msb_consul nexus3.onap.org:10001/onap/msb/msb_base
+CONSUL_IP=`get-instance-ip.sh msb_consul`
+echo CONSUL_IP=${CONSUL_IP}
+docker run -d -p 10081:10081 -e CONSUL_IP=$CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery
+DISCOVERY_IP=`get-instance-ip.sh msb_discovery`
+echo DISCOVERY_IP=${DISCOVERY_IP}
+docker run -d -p 80:80 -e CONSUL_IP=$CONSUL_IP -e SDCLIENT_IP=$DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway
+MSB_IP=`get-instance-ip.sh msb_internal_apigateway`
+echo MSB_IP=${MSB_IP}
+
+# Start rulemgt
+source ${SCRIPTS}/holmes/rule-management/startup.sh i-rulemgt ${DB_IP} ${MSB_IP} 80
+RULEMGT_IP=`get-instance-ip.sh i-rulemgt`
+echo RULEMGT_IP=${RULEMGT_IP}
+
+# Wait for initialization
+for i in {1..20}; do
+ curl -sS -m 1 ${RULEMGT_IP}:9101 && curl -sS -m 1 ${MSB_IP}:80 && break
+ echo sleep $i
+ sleep $i
+done
+
+# Start engine-d
+source ${SCRIPTS}/holmes/engine-management/startup.sh i-engine-d ${DB_IP} ${MSB_IP} 80
+ENGINE_D_IP=`get-instance-ip.sh i-engine-d`
+echo ENGINE_D_IP=${ENGINE_D_IP}
+
+
+# Wait for initialization
+for i in {1..10}; do
+ curl -sS -m 1 ${ENGINE_D_IP}:9102 && break
+ echo sleep $i
+ sleep $i
+done
+
+#Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v MSB_IP:${MSB_IP} -v RULEMGT_IP:${RULEMGT_IP} -v ENGINE_D_IP:${ENGINE_D_IP}"
+
diff --git a/test/csit/plans/holmes/sanity-check/teardown.sh b/test/csit/plans/holmes/sanity-check/teardown.sh
new file mode 100644
index 000000000..4c457dc01
--- /dev/null
+++ b/test/csit/plans/holmes/sanity-check/teardown.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Copyright 2016-2017 Huawei Technologies Co., Ltd.
+#
+# 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.
+#
+
+kill-instance.sh i-rulemgt
+kill-instance.sh i-engine-d
+kill-instance.sh msb_internal_apigateway
+kill-instance.sh msb_discovery
+kill-instance.sh msb_consul
+kill-instance.sh mysql-holmes
+
+
diff --git a/test/csit/plans/holmes/sanity-check/testplan.txt b/test/csit/plans/holmes/sanity-check/testplan.txt
new file mode 100644
index 000000000..e699512d7
--- /dev/null
+++ b/test/csit/plans/holmes/sanity-check/testplan.txt
@@ -0,0 +1,5 @@
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+
+holmes/testcase/EngineMgt
+holmes/testcase/RuleMgt
diff --git a/test/csit/plans/msb/sanity-check/setup.sh b/test/csit/plans/msb/sanity-check/setup.sh
new file mode 100644
index 000000000..6ae5e4299
--- /dev/null
+++ b/test/csit/plans/msb/sanity-check/setup.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+# Copyright 2017 2017 ZTE, Inc. and others.
+#
+# 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.
+#
+
+source ${SCRIPTS}/common_functions.sh
+
+#start msb
+sudo docker run -d -p 8500:8500 --name msb_consul consul
+MSB_CONSUL_IP=`get-instance-ip.sh msb_consul`
+echo MSB_CONSUL_IP=${MSB_CONSUL_IP}
+
+sudo docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery
+MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery`
+echo DISCOVERY_IP=${MSB_DISCOVERY_IP}
+
+sudo docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway
+MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway`
+echo MSB_IAG_IP=${MSB_IAG_IP}
+
+# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway)
+for i in {1..10}; do
+ curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break
+ echo sleep $i
+ sleep $i
+done
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP}"
diff --git a/test/csit/plans/msb/sanity-check/teardown.sh b/test/csit/plans/msb/sanity-check/teardown.sh
new file mode 100644
index 000000000..3e7dbc1c4
--- /dev/null
+++ b/test/csit/plans/msb/sanity-check/teardown.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Copyright 2017 2017 ZTE, Inc. and others.
+#
+# 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.
+#
+
+kill-instance.sh msb_consul
+kill-instance.sh msb_discovery
+kill-instance.sh msb_internal_apigateway \ No newline at end of file
diff --git a/test/csit/plans/msb/sanity-check/testplan.txt b/test/csit/plans/msb/sanity-check/testplan.txt
new file mode 100644
index 000000000..0ef750718
--- /dev/null
+++ b/test/csit/plans/msb/sanity-check/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+msb/startup
diff --git a/test/csit/plans/vfc-nfvo-lcm/sanity-check/setup.sh b/test/csit/plans/vfc-nfvo-lcm/sanity-check/setup.sh
new file mode 100755
index 000000000..362909ad4
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-lcm/sanity-check/setup.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+#
+# Copyright 2017 ZTE Corporation.
+#
+# 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.
+#
+# Place the scripts in run order:
+# Start all process required for executing test case
+
+#login to the onap nexus docker repo
+docker login -u docker -p docker nexus3.onap.org:10001
+
+# Start MSB
+docker run -d -p 8500:8500 --name msb_consul nexus3.onap.org:10001/onap/msb/msb_base
+CONSUL_IP=`get-instance-ip.sh msb_consul`
+echo CONSUL_IP=${CONSUL_IP}
+docker run -d -p 10081:10081 -e CONSUL_IP=$CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery
+DISCOVERY_IP=`get-instance-ip.sh msb_discovery`
+echo DISCOVERY_IP=${DISCOVERY_IP}
+docker run -d -p 80:80 -e CONSUL_IP=$CONSUL_IP -e SDCLIENT_IP=$DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway
+MSB_IP==`get-instance-ip.sh msb_internal_apigateway`
+echo MSB_IP=${MSB_IP}
+
+# start vfc-nslcm
+docker run -d --name vfc-nslcm -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/nslcm
+NSLCM_IP=`get-instance-ip.sh vfc-nslcm`
+for i in {1..10}; do
+ curl -sS ${NSLCM_IP}:8403 && break
+ echo sleep $i
+ sleep $i
+done
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v MSB_IP:${MSB_IP} -v NSLCM_IP:${NSLCM_IP}"
diff --git a/test/csit/plans/vfc-nfvo-lcm/sanity-check/teardown.sh b/test/csit/plans/vfc-nfvo-lcm/sanity-check/teardown.sh
new file mode 100755
index 000000000..c74850d36
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-lcm/sanity-check/teardown.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+#
+# Copyright 2017 ZTE Corporation.
+#
+# 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.
+#
+
+# This script is sourced by run-csit.sh after Robot test completion.
+kill-instance.sh msb_internal_apigateway
+kill-instance.sh msb_discovery
+kill-instance.sh msb_consul
+kill-instance.sh vfc-nslcm
diff --git a/test/csit/plans/vfc-nfvo-lcm/sanity-check/testplan.txt b/test/csit/plans/vfc-nfvo-lcm/sanity-check/testplan.txt
new file mode 100644
index 000000000..fc261e13c
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-lcm/sanity-check/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+vfc/nfvo-lcm/test.robot
diff --git a/test/csit/scripts/clamp/start_clamp_containers.sh b/test/csit/scripts/clamp/start_clamp_containers.sh
index 23d3c566d..02abe264c 100755
--- a/test/csit/scripts/clamp/start_clamp_containers.sh
+++ b/test/csit/scripts/clamp/start_clamp_containers.sh
@@ -28,7 +28,7 @@ echo "This is ${WORKSPACE}/test/csit/scripts/clamp/start_clamp_containers.sh"
docker-compose up -d
# WAIT 5 minutes maximum and test every 5 seconds if Clamp up using HealthCheck API
-TIME_OUT=600
+TIME_OUT=1200
INTERVAL=5
TIME=0
while [ "$TIME" -lt "$TIME_OUT" ]; do
diff --git a/test/csit/scripts/holmes/engine-management/startup.sh b/test/csit/scripts/holmes/engine-management/startup.sh
new file mode 100644
index 000000000..7d6ec241d
--- /dev/null
+++ b/test/csit/scripts/holmes/engine-management/startup.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# Copyright 2017 ZTE Corporation.
+#
+# 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.
+#
+# $1 nickname for the engined instance
+# $2 IP address of JDBC
+# $3 IP address of BrokerIP
+
+docker login -u docker -p docker nexus3.onap.org:10001
+
+run-instance.sh nexus3.onap.org:10001/onap/holmes/engine-management:latest $1 "-e URL_JDBC=$2:5432 -e MSB_ADDR=$3 -e MSB_PORT=$4"
diff --git a/test/csit/scripts/holmes/rule-management/startup.sh b/test/csit/scripts/holmes/rule-management/startup.sh
new file mode 100644
index 000000000..a4cc0a806
--- /dev/null
+++ b/test/csit/scripts/holmes/rule-management/startup.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+#
+# Copyright 2017 ZTE Corporation.
+#
+# 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.
+#
+# $1 nickname for the RuleMgt instance
+# $2 IP address of JDBC
+
+docker login -u docker -p docker nexus3.onap.org:10001
+
+run-instance.sh nexus3.onap.org:10001/onap/holmes/rule-management:latest $1 "-e URL_JDBC=$2:5432 -e MSB_ADDR=$3 -e MSB_PORT=$4" \ No newline at end of file
diff --git a/test/csit/tests/clamp/TCA/data/createTemplate1.json b/test/csit/tests/clamp/TCA/data/createTemplate1.json
index 0b08d5881..b6363ef9e 100644
--- a/test/csit/tests/clamp/TCA/data/createTemplate1.json
+++ b/test/csit/tests/clamp/TCA/data/createTemplate1.json
@@ -2,6 +2,6 @@
"name": "template1",
"controlNamePrefix": "ClosedLoop-",
"bpmnText": "<?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:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" id=\"Definitions_1\" targetNamespace=\"http://bpmn.io/schema/bpmn\"> <bpmn:process id=\"Process_1\" isExecutable=\"false\"> <bpmn:startEvent id=\"StartEvent_1\"> <bpmn:outgoing>SequenceFlow_0wokvsg</bpmn:outgoing> </bpmn:startEvent> <bpmn:collector id=\"Collector_04kan6k\"> <bpmn:incoming>SequenceFlow_0wokvsg</bpmn:incoming> <bpmn:outgoing>SequenceFlow_0w8129u</bpmn:outgoing> </bpmn:collector> <bpmn:tCA id=\"TCA_0laok3g\"> <bpmn:incoming>SequenceFlow_0w8129u</bpmn:incoming> <bpmn:outgoing>SequenceFlow_0bdkahu</bpmn:outgoing> </bpmn:tCA> <bpmn:policy id=\"Policy_1u1q61z\"> <bpmn:incoming>SequenceFlow_0bdkahu</bpmn:incoming> <bpmn:outgoing>SequenceFlow_039geog</bpmn:outgoing> </bpmn:policy> <bpmn:endEvent id=\"EndEvent_1jhpt6o\"> <bpmn:incoming>SequenceFlow_039geog</bpmn:incoming> </bpmn:endEvent> <bpmn:sequenceFlow id=\"SequenceFlow_0wokvsg\" sourceRef=\"StartEvent_1\" targetRef=\"Collector_04kan6k\" /> <bpmn:sequenceFlow id=\"SequenceFlow_0w8129u\" sourceRef=\"Collector_04kan6k\" targetRef=\"TCA_0laok3g\" /> <bpmn:sequenceFlow id=\"SequenceFlow_0bdkahu\" sourceRef=\"TCA_0laok3g\" targetRef=\"Policy_1u1q61z\" /> <bpmn:sequenceFlow id=\"SequenceFlow_039geog\" sourceRef=\"Policy_1u1q61z\" targetRef=\"EndEvent_1jhpt6o\" /> </bpmn:process> <bpmndi:BPMNDiagram id=\"BPMNDiagram_1\"> <bpmndi:BPMNPlane id=\"BPMNPlane_1\" bpmnElement=\"Process_1\"> <bpmndi:BPMNShape id=\"_BPMNShape_StartEvent_2\" bpmnElement=\"StartEvent_1\"> <dc:Bounds x=\"50\" y=\"162\" width=\"36\" height=\"36\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"Collector_04kan6k_di\" bpmnElement=\"Collector_04kan6k\"> <dc:Bounds x=\"156\" y=\"140\" width=\"120\" height=\"80\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"TCA_0laok3g_di\" bpmnElement=\"TCA_0laok3g\"> <dc:Bounds x=\"372\" y=\"140\" width=\"120\" height=\"80\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"Policy_1u1q61z_di\" bpmnElement=\"Policy_1u1q61z\"> <dc:Bounds x=\"603\" y=\"140\" width=\"120\" height=\"80\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"EndEvent_1jhpt6o_di\" bpmnElement=\"EndEvent_1jhpt6o\"> <dc:Bounds x=\"874\" y=\"162\" width=\"36\" height=\"36\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"847\" y=\"198\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id=\"SequenceFlow_0wokvsg_di\" bpmnElement=\"SequenceFlow_0wokvsg\"> <di:waypoint xsi:type=\"dc:Point\" x=\"86\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"156\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"76\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id=\"SequenceFlow_0w8129u_di\" bpmnElement=\"SequenceFlow_0w8129u\"> <di:waypoint xsi:type=\"dc:Point\" x=\"276\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"372\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"279\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id=\"SequenceFlow_0bdkahu_di\" bpmnElement=\"SequenceFlow_0bdkahu\"> <di:waypoint xsi:type=\"dc:Point\" x=\"492\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"603\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"502.5\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id=\"SequenceFlow_039geog_di\" bpmnElement=\"SequenceFlow_039geog\"> <di:waypoint xsi:type=\"dc:Point\" x=\"723\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"874\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"753.5\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram></bpmn:definitions>",
- "propText": "{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_2\\r\\n\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.3.1/types.yaml\\r\\n- http://135.207.127.211/1607_prod/type_files/cdap_app.yaml\\r\\n\\r\\nnode_templates:\\r\\n MTCA:\\r\\n type: dcae.nodes.cdap_app\\r\\n properties:\\r\\n service_name: \\\"cdap-mtca-central\\\"\\r\\n deployment_JSON: |-\\r\\n {\\r\\n \\\"clusterService\\\": {\\\"$ref\\\": \\\"/services/vm-cdap-cluster-central/instances/rdm2c\\\"},\\r\\n \\\"namespace\\\": \\\"MTCA\\\",\\r\\n \\\"appNames\\\": [ \\\"cdap-mtca\\\" ],\\r\\n \\\"flowNames\\\": [ \\\"cdap-mtca.TCAVESCollectorFlow\\\" ],\\r\\n \\\"workerNames\\\": [\\\"cdap-mtca.TCADMaaPMRSubscriberWorker\\\", \\\"cdap-mtca.TCADMaaPMRPublisherWorker\\\"],\\r\\n \\\"serviceNames\\\" : [],\\r\\n \\\"apps\\\": {\\r\\n \\\"cdap-mtca\\\": {\\r\\n \\\"jarFile\\\": \\\"/opt/app/cdap-apps/dcae-analytics-mtca-1.0.0.jar\\\",\\r\\n \\\"artifactName\\\": \\\"dcae-analytics-mtca\\\",\\r\\n \\\"version\\\": \\\"1.0.0\\\",\\r\\n \\\"appConfigFileContent\\\": \\\"{config:{ \\\\\\\"appName\\\\\\\":\\\\\\\"cdap-mtca\\\\\\\", \\\\\\\"appDescription\\\\\\\":\\\\\\\"DCAE Analytics Threshold Crossing Alert Application\\\\\\\", \\\\\\\"tcaSubscriberOutputStreamName\\\\\\\":\\\\\\\"TCASubscriberOutputStream\\\\\\\", \\\\\\\"thresholdCalculatorFlowletInstances\\\\\\\":2, \\\\\\\"tcaVESMessageStatusTableName\\\\\\\":\\\\\\\"TCAVESMessageStatusTable\\\\\\\", \\\\\\\"tcaVESMessageStatusTableTTLSeconds\\\\\\\":864000, \\\\\\\"tcaVESAlertsTableName\\\\\\\":\\\\\\\"TCAVESAlertsTable\\\\\\\", \\\\\\\"tcaVESAlertsTableTTLSeconds\\\\\\\":1728000 }}\\\"\\r\\n }\\r\\n },\\r\\n \\r\\n \\\"configuration\\\": {\\r\\n \\\"$class\\\": \\\"com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration\\\",\\r\\n \\\"subscriberContentType\\\": \\\"\\\",\\r\\n \\\"subscriberConsumerId\\\": \\\"c12\\\",\\r\\n \\\"subscriberConsumerGroup\\\": \\\"OpenDCAE-c12\\\",\\r\\n \\\"subscriberTimeoutMS\\\": \\\"-1\\\",\\r\\n \\\"subscriberMessageLimit\\\": \\\"-1\\\",\\r\\n \\\"subscriberPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherContentType\\\": \\\"application/json\\\",\\r\\n \\\"publisherMaxBatchSize\\\": \\\"10\\\",\\r\\n \\\"publisherMaxRecoveryQueueSize\\\": \\\"100000\\\",\\r\\n \\\"publisherPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherAlertWindowingTime\\\": \\\"86400\\\",\\r\\n \\\"policyName\\\": \\\"policy.dcae.configuration\\\",\\r\\n \\\"policyScope\\\": \\\"pnf=eNodeB;type=configuration\\\",\\r\\n \\\"policyVersion\\\": \\\"1.0.0\\\",\\r\\n \\\"domain\\\" : \\\"measurementsForVfScaling\\\",\\r\\n \\r\\n \\\"signatures\\\" : {\\r\\n \\t }\\r\\n\\r\\n }\\r\\n }\"]}]}",
+ "propText": "{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_2\\r\\n\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.3.1/types.yaml\\r\\n- http://127.0.0.1/1607_prod/type_files/cdap_app.yaml\\r\\n\\r\\nnode_templates:\\r\\n MTCA:\\r\\n type: dcae.nodes.cdap_app\\r\\n properties:\\r\\n service_name: \\\"cdap-mtca-central\\\"\\r\\n deployment_JSON: |-\\r\\n {\\r\\n \\\"clusterService\\\": {\\\"$ref\\\": \\\"/services/vm-cdap-cluster-central/instances/rdm2c\\\"},\\r\\n \\\"namespace\\\": \\\"MTCA\\\",\\r\\n \\\"appNames\\\": [ \\\"cdap-mtca\\\" ],\\r\\n \\\"flowNames\\\": [ \\\"cdap-mtca.TCAVESCollectorFlow\\\" ],\\r\\n \\\"workerNames\\\": [\\\"cdap-mtca.TCADMaaPMRSubscriberWorker\\\", \\\"cdap-mtca.TCADMaaPMRPublisherWorker\\\"],\\r\\n \\\"serviceNames\\\" : [],\\r\\n \\\"apps\\\": {\\r\\n \\\"cdap-mtca\\\": {\\r\\n \\\"jarFile\\\": \\\"/opt/app/cdap-apps/dcae-analytics-mtca-1.0.0.jar\\\",\\r\\n \\\"artifactName\\\": \\\"dcae-analytics-mtca\\\",\\r\\n \\\"version\\\": \\\"1.0.0\\\",\\r\\n \\\"appConfigFileContent\\\": \\\"{config:{ \\\\\\\"appName\\\\\\\":\\\\\\\"cdap-mtca\\\\\\\", \\\\\\\"appDescription\\\\\\\":\\\\\\\"DCAE Analytics Threshold Crossing Alert Application\\\\\\\", \\\\\\\"tcaSubscriberOutputStreamName\\\\\\\":\\\\\\\"TCASubscriberOutputStream\\\\\\\", \\\\\\\"thresholdCalculatorFlowletInstances\\\\\\\":2, \\\\\\\"tcaVESMessageStatusTableName\\\\\\\":\\\\\\\"TCAVESMessageStatusTable\\\\\\\", \\\\\\\"tcaVESMessageStatusTableTTLSeconds\\\\\\\":864000, \\\\\\\"tcaVESAlertsTableName\\\\\\\":\\\\\\\"TCAVESAlertsTable\\\\\\\", \\\\\\\"tcaVESAlertsTableTTLSeconds\\\\\\\":1728000 }}\\\"\\r\\n }\\r\\n },\\r\\n \\r\\n \\\"configuration\\\": {\\r\\n \\\"$class\\\": \\\"com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration\\\",\\r\\n \\\"subscriberContentType\\\": \\\"\\\",\\r\\n \\\"subscriberConsumerId\\\": \\\"c12\\\",\\r\\n \\\"subscriberConsumerGroup\\\": \\\"OpenDCAE-c12\\\",\\r\\n \\\"subscriberTimeoutMS\\\": \\\"-1\\\",\\r\\n \\\"subscriberMessageLimit\\\": \\\"-1\\\",\\r\\n \\\"subscriberPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherContentType\\\": \\\"application/json\\\",\\r\\n \\\"publisherMaxBatchSize\\\": \\\"10\\\",\\r\\n \\\"publisherMaxRecoveryQueueSize\\\": \\\"100000\\\",\\r\\n \\\"publisherPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherAlertWindowingTime\\\": \\\"86400\\\",\\r\\n \\\"policyName\\\": \\\"policy.dcae.configuration\\\",\\r\\n \\\"policyScope\\\": \\\"pnf=eNodeB;type=configuration\\\",\\r\\n \\\"policyVersion\\\": \\\"1.0.0\\\",\\r\\n \\\"domain\\\" : \\\"measurementsForVfScaling\\\",\\r\\n \\r\\n \\\"signatures\\\" : {\\r\\n \\t }\\r\\n\\r\\n }\\r\\n }\"]}]}",
"imageText":"<?xml version=\"1.0\" encoding=\"utf-8\"?><!-- created with bpmn-js / http://bpmn.io --><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"873\" height=\"92\" viewBox=\"44 134 873 92\" version=\"1.1\"><defs><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"11\" refY=\"10\" id=\"markerSj6f0mkekx\"><path d=\"M 1 5 L 11 10 L 1 15 Z\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"20\" markerHeight=\"20\" orient=\"auto\" refX=\"6\" refY=\"6\" id=\"markerSj6f0mkekz\"><circle cx=\"6\" cy=\"6\" r=\"3.5\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"20\" markerHeight=\"20\" orient=\"auto\" refX=\"8.5\" refY=\"5\" id=\"markerSj6f0mkek11\"><path d=\"m 1 5 l 0 -3 l 7 3 l -7 3 z\" style=\"stroke-width: 1; stroke-linecap: butt; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"11\" refY=\"10\" id=\"markerSj6f0mkek13\"><path d=\"M 1 5 L 11 10 L 1 15\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"-1\" refY=\"10\" id=\"markerSj6f0mkek15\"><path d=\"M 0 10 L 8 6 L 16 10 L 8 14 Z\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"-5\" refY=\"10\" id=\"markerSj6f0mkek17\"><path d=\"M 1 4 L 5 16\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#000000\" stroke=\"#000000\"/></marker></defs><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"StartEvent_1\" transform=\"matrix(1,0,0,1,50,162)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"48\" height=\"48\"></rect><g class=\"djs-visual\"><circle cx=\"18\" cy=\"18\" r=\"18\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></circle></g><rect x=\"0\" y=\"0\" width=\"36\" height=\"36\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"StartEvent_1_label\" transform=\"matrix(1,0,0,1,23,198)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"Collector_04kan6k\" transform=\"matrix(1,0,0,1,156,140)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"132\" height=\"92\"></rect><g class=\"djs-visual\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" rx=\"0\" ry=\"0\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></rect><polyline points=\"120,80 120,20 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><polyline points=\"20,0 20,80 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><text style=\"font-family: Arial,sans-serif; font-size: 12px;\" class=\" djs-label\"><tspan x=\"35.5\" y=\"43.5\">Collector</tspan></text></g><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"TCA_0laok3g\" transform=\"matrix(1,0,0,1,372,140)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"132\" height=\"92\"></rect><g class=\"djs-visual\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" rx=\"0\" ry=\"0\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></rect><polyline points=\"0,60 120,60 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><text style=\"font-family: Arial,sans-serif; font-size: 12px;\" class=\" djs-label\"><tspan x=\"48\" y=\"43.5\">TCA</tspan></text></g><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"Policy_1u1q61z\" transform=\"matrix(1,0,0,1,603,140)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"132\" height=\"92\"></rect><g class=\"djs-visual\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" rx=\"0\" ry=\"0\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></rect><polyline points=\"0,40 60,0 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><text style=\"font-family: Arial,sans-serif; font-size: 12px;\" class=\" djs-label\"><tspan x=\"43.5\" y=\"43.5\">Policy</tspan></text></g><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape selected\" data-element-id=\"EndEvent_1jhpt6o\" transform=\"matrix(1,0,0,1,874,162)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"48\" height=\"48\"></rect><g class=\"djs-visual\"><circle cx=\"18\" cy=\"18\" r=\"18\" style=\"stroke-width: 4;\" stroke=\"#000000\" fill=\"#ffffff\"></circle></g><rect x=\"0\" y=\"0\" width=\"36\" height=\"36\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect><g class=\" djs-resizer djs-resizer-nw\" transform=\"matrix(1,0,0,1,0,0)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g><g class=\" djs-resizer djs-resizer-ne\" transform=\"matrix(0,1,-1,0,36,0)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g><g class=\" djs-resizer djs-resizer-se\" transform=\"matrix(-1,0,0,-1,36,36)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g><g class=\" djs-resizer djs-resizer-sw\" transform=\"matrix(0,-1,1,0,0,36)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"EndEvent_1jhpt6o_label\" transform=\"matrix(1,0,0,1,847,198)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_0wokvsg\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"80\" y=\"174\" width=\"82\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 86,180L156,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"86,180 156,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_0wokvsg_label\" transform=\"matrix(1,0,0,1,76,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_0w8129u\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"270\" y=\"174\" width=\"108\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 276,180L372,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"276,180 372,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_0w8129u_label\" transform=\"matrix(1,0,0,1,279,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_0bdkahu\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"486\" y=\"174\" width=\"123\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 492,180L603,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"492,180 603,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_0bdkahu_label\" transform=\"matrix(1,0,0,1,502.5,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_039geog\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"717\" y=\"174\" width=\"163\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 723,180L874,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"723,180 874,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_039geog_label\" transform=\"matrix(1,0,0,1,753.5,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g></svg>"
} \ No newline at end of file
diff --git a/test/csit/tests/clamp/TCA/data/createTemplate2.json b/test/csit/tests/clamp/TCA/data/createTemplate2.json
index 84f7c06e9..b246fdc26 100644
--- a/test/csit/tests/clamp/TCA/data/createTemplate2.json
+++ b/test/csit/tests/clamp/TCA/data/createTemplate2.json
@@ -2,6 +2,6 @@
"name": "template2",
"controlNamePrefix": "ClosedLoop-",
"bpmnText": "<?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:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" id=\"Definitions_1\" targetNamespace=\"http://bpmn.io/schema/bpmn\"> <bpmn:process id=\"Process_1\" isExecutable=\"false\"> <bpmn:startEvent id=\"StartEvent_1\"> <bpmn:outgoing>SequenceFlow_0wokvsg</bpmn:outgoing> </bpmn:startEvent> <bpmn:collector id=\"Collector_04kan6k\"> <bpmn:incoming>SequenceFlow_0wokvsg</bpmn:incoming> <bpmn:outgoing>SequenceFlow_0w8129u</bpmn:outgoing> </bpmn:collector> <bpmn:tCA id=\"TCA_0laok3g\"> <bpmn:incoming>SequenceFlow_0w8129u</bpmn:incoming> <bpmn:outgoing>SequenceFlow_0bdkahu</bpmn:outgoing> </bpmn:tCA> <bpmn:policy id=\"Policy_1u1q61z\"> <bpmn:incoming>SequenceFlow_0bdkahu</bpmn:incoming> <bpmn:outgoing>SequenceFlow_039geog</bpmn:outgoing> </bpmn:policy> <bpmn:endEvent id=\"EndEvent_1jhpt6o\"> <bpmn:incoming>SequenceFlow_039geog</bpmn:incoming> </bpmn:endEvent> <bpmn:sequenceFlow id=\"SequenceFlow_0wokvsg\" sourceRef=\"StartEvent_1\" targetRef=\"Collector_04kan6k\" /> <bpmn:sequenceFlow id=\"SequenceFlow_0w8129u\" sourceRef=\"Collector_04kan6k\" targetRef=\"TCA_0laok3g\" /> <bpmn:sequenceFlow id=\"SequenceFlow_0bdkahu\" sourceRef=\"TCA_0laok3g\" targetRef=\"Policy_1u1q61z\" /> <bpmn:sequenceFlow id=\"SequenceFlow_039geog\" sourceRef=\"Policy_1u1q61z\" targetRef=\"EndEvent_1jhpt6o\" /> </bpmn:process> <bpmndi:BPMNDiagram id=\"BPMNDiagram_1\"> <bpmndi:BPMNPlane id=\"BPMNPlane_1\" bpmnElement=\"Process_1\"> <bpmndi:BPMNShape id=\"_BPMNShape_StartEvent_2\" bpmnElement=\"StartEvent_1\"> <dc:Bounds x=\"50\" y=\"162\" width=\"36\" height=\"36\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"Collector_04kan6k_di\" bpmnElement=\"Collector_04kan6k\"> <dc:Bounds x=\"156\" y=\"140\" width=\"120\" height=\"80\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"TCA_0laok3g_di\" bpmnElement=\"TCA_0laok3g\"> <dc:Bounds x=\"372\" y=\"140\" width=\"120\" height=\"80\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"Policy_1u1q61z_di\" bpmnElement=\"Policy_1u1q61z\"> <dc:Bounds x=\"603\" y=\"140\" width=\"120\" height=\"80\" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id=\"EndEvent_1jhpt6o_di\" bpmnElement=\"EndEvent_1jhpt6o\"> <dc:Bounds x=\"874\" y=\"162\" width=\"36\" height=\"36\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"847\" y=\"198\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id=\"SequenceFlow_0wokvsg_di\" bpmnElement=\"SequenceFlow_0wokvsg\"> <di:waypoint xsi:type=\"dc:Point\" x=\"86\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"156\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"76\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id=\"SequenceFlow_0w8129u_di\" bpmnElement=\"SequenceFlow_0w8129u\"> <di:waypoint xsi:type=\"dc:Point\" x=\"276\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"372\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"279\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id=\"SequenceFlow_0bdkahu_di\" bpmnElement=\"SequenceFlow_0bdkahu\"> <di:waypoint xsi:type=\"dc:Point\" x=\"492\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"603\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"502.5\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id=\"SequenceFlow_039geog_di\" bpmnElement=\"SequenceFlow_039geog\"> <di:waypoint xsi:type=\"dc:Point\" x=\"723\" y=\"180\" /> <di:waypoint xsi:type=\"dc:Point\" x=\"874\" y=\"180\" /> <bpmndi:BPMNLabel> <dc:Bounds x=\"753.5\" y=\"170\" width=\"90\" height=\"20\" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram></bpmn:definitions>",
- "propText": "{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_2\\r\\n\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.3.1/types.yaml\\r\\n- http://135.207.127.211/1607_prod/type_files/cdap_app.yaml\\r\\n\\r\\nnode_templates:\\r\\n MTCA:\\r\\n type: dcae.nodes.cdap_app\\r\\n properties:\\r\\n service_name: \\\"cdap-mtca-central\\\"\\r\\n deployment_JSON: |-\\r\\n {\\r\\n \\\"clusterService\\\": {\\\"$ref\\\": \\\"/services/vm-cdap-cluster-central/instances/rdm2c\\\"},\\r\\n \\\"namespace\\\": \\\"MTCA\\\",\\r\\n \\\"appNames\\\": [ \\\"cdap-mtca\\\" ],\\r\\n \\\"flowNames\\\": [ \\\"cdap-mtca.TCAVESCollectorFlow\\\" ],\\r\\n \\\"workerNames\\\": [\\\"cdap-mtca.TCADMaaPMRSubscriberWorker\\\", \\\"cdap-mtca.TCADMaaPMRPublisherWorker\\\"],\\r\\n \\\"serviceNames\\\" : [],\\r\\n \\\"apps\\\": {\\r\\n \\\"cdap-mtca\\\": {\\r\\n \\\"jarFile\\\": \\\"/opt/app/cdap-apps/dcae-analytics-mtca-1.0.0.jar\\\",\\r\\n \\\"artifactName\\\": \\\"dcae-analytics-mtca\\\",\\r\\n \\\"version\\\": \\\"1.0.0\\\",\\r\\n \\\"appConfigFileContent\\\": \\\"{config:{ \\\\\\\"appName\\\\\\\":\\\\\\\"cdap-mtca\\\\\\\", \\\\\\\"appDescription\\\\\\\":\\\\\\\"DCAE Analytics Threshold Crossing Alert Application\\\\\\\", \\\\\\\"tcaSubscriberOutputStreamName\\\\\\\":\\\\\\\"TCASubscriberOutputStream\\\\\\\", \\\\\\\"thresholdCalculatorFlowletInstances\\\\\\\":2, \\\\\\\"tcaVESMessageStatusTableName\\\\\\\":\\\\\\\"TCAVESMessageStatusTable\\\\\\\", \\\\\\\"tcaVESMessageStatusTableTTLSeconds\\\\\\\":864000, \\\\\\\"tcaVESAlertsTableName\\\\\\\":\\\\\\\"TCAVESAlertsTable\\\\\\\", \\\\\\\"tcaVESAlertsTableTTLSeconds\\\\\\\":1728000 }}\\\"\\r\\n }\\r\\n },\\r\\n \\r\\n \\\"configuration\\\": {\\r\\n \\\"$class\\\": \\\"com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration\\\",\\r\\n \\\"subscriberContentType\\\": \\\"\\\",\\r\\n \\\"subscriberConsumerId\\\": \\\"c12\\\",\\r\\n \\\"subscriberConsumerGroup\\\": \\\"OpenDCAE-c12\\\",\\r\\n \\\"subscriberTimeoutMS\\\": \\\"-1\\\",\\r\\n \\\"subscriberMessageLimit\\\": \\\"-1\\\",\\r\\n \\\"subscriberPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherContentType\\\": \\\"application/json\\\",\\r\\n \\\"publisherMaxBatchSize\\\": \\\"10\\\",\\r\\n \\\"publisherMaxRecoveryQueueSize\\\": \\\"100000\\\",\\r\\n \\\"publisherPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherAlertWindowingTime\\\": \\\"86400\\\",\\r\\n \\\"policyName\\\": \\\"policy.dcae.configuration\\\",\\r\\n \\\"policyScope\\\": \\\"pnf=eNodeB;type=configuration\\\",\\r\\n \\\"policyVersion\\\": \\\"1.0.0\\\",\\r\\n \\\"domain\\\" : \\\"measurementsForVfScaling\\\",\\r\\n \\r\\n \\\"signatures\\\" : {\\r\\n \\t }\\r\\n\\r\\n }\\r\\n }\"]}]}",
+ "propText": "{\"global\":[{\"name\":\"service\",\"value\":[\"tosca_definitions_version: cloudify_dsl_1_2\\r\\n\\r\\nimports:\\r\\n- http://www.getcloudify.org/spec/cloudify/3.3.1/types.yaml\\r\\n- http://127.0.0.1/1607_prod/type_files/cdap_app.yaml\\r\\n\\r\\nnode_templates:\\r\\n MTCA:\\r\\n type: dcae.nodes.cdap_app\\r\\n properties:\\r\\n service_name: \\\"cdap-mtca-central\\\"\\r\\n deployment_JSON: |-\\r\\n {\\r\\n \\\"clusterService\\\": {\\\"$ref\\\": \\\"/services/vm-cdap-cluster-central/instances/rdm2c\\\"},\\r\\n \\\"namespace\\\": \\\"MTCA\\\",\\r\\n \\\"appNames\\\": [ \\\"cdap-mtca\\\" ],\\r\\n \\\"flowNames\\\": [ \\\"cdap-mtca.TCAVESCollectorFlow\\\" ],\\r\\n \\\"workerNames\\\": [\\\"cdap-mtca.TCADMaaPMRSubscriberWorker\\\", \\\"cdap-mtca.TCADMaaPMRPublisherWorker\\\"],\\r\\n \\\"serviceNames\\\" : [],\\r\\n \\\"apps\\\": {\\r\\n \\\"cdap-mtca\\\": {\\r\\n \\\"jarFile\\\": \\\"/opt/app/cdap-apps/dcae-analytics-mtca-1.0.0.jar\\\",\\r\\n \\\"artifactName\\\": \\\"dcae-analytics-mtca\\\",\\r\\n \\\"version\\\": \\\"1.0.0\\\",\\r\\n \\\"appConfigFileContent\\\": \\\"{config:{ \\\\\\\"appName\\\\\\\":\\\\\\\"cdap-mtca\\\\\\\", \\\\\\\"appDescription\\\\\\\":\\\\\\\"DCAE Analytics Threshold Crossing Alert Application\\\\\\\", \\\\\\\"tcaSubscriberOutputStreamName\\\\\\\":\\\\\\\"TCASubscriberOutputStream\\\\\\\", \\\\\\\"thresholdCalculatorFlowletInstances\\\\\\\":2, \\\\\\\"tcaVESMessageStatusTableName\\\\\\\":\\\\\\\"TCAVESMessageStatusTable\\\\\\\", \\\\\\\"tcaVESMessageStatusTableTTLSeconds\\\\\\\":864000, \\\\\\\"tcaVESAlertsTableName\\\\\\\":\\\\\\\"TCAVESAlertsTable\\\\\\\", \\\\\\\"tcaVESAlertsTableTTLSeconds\\\\\\\":1728000 }}\\\"\\r\\n }\\r\\n },\\r\\n \\r\\n \\\"configuration\\\": {\\r\\n \\\"$class\\\": \\\"com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration\\\",\\r\\n \\\"subscriberContentType\\\": \\\"\\\",\\r\\n \\\"subscriberConsumerId\\\": \\\"c12\\\",\\r\\n \\\"subscriberConsumerGroup\\\": \\\"OpenDCAE-c12\\\",\\r\\n \\\"subscriberTimeoutMS\\\": \\\"-1\\\",\\r\\n \\\"subscriberMessageLimit\\\": \\\"-1\\\",\\r\\n \\\"subscriberPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherContentType\\\": \\\"application/json\\\",\\r\\n \\\"publisherMaxBatchSize\\\": \\\"10\\\",\\r\\n \\\"publisherMaxRecoveryQueueSize\\\": \\\"100000\\\",\\r\\n \\\"publisherPollingInterval\\\": \\\"20000\\\",\\r\\n \\\"publisherAlertWindowingTime\\\": \\\"86400\\\",\\r\\n \\\"policyName\\\": \\\"policy.dcae.configuration\\\",\\r\\n \\\"policyScope\\\": \\\"pnf=eNodeB;type=configuration\\\",\\r\\n \\\"policyVersion\\\": \\\"1.0.0\\\",\\r\\n \\\"domain\\\" : \\\"measurementsForVfScaling\\\",\\r\\n \\r\\n \\\"signatures\\\" : {\\r\\n \\t }\\r\\n\\r\\n }\\r\\n }\"]}]}",
"imageText":"<?xml version=\"1.0\" encoding=\"utf-8\"?><!-- created with bpmn-js / http://bpmn.io --><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"873\" height=\"92\" viewBox=\"44 134 873 92\" version=\"1.1\"><defs><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"11\" refY=\"10\" id=\"markerSj6f0mkekx\"><path d=\"M 1 5 L 11 10 L 1 15 Z\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"20\" markerHeight=\"20\" orient=\"auto\" refX=\"6\" refY=\"6\" id=\"markerSj6f0mkekz\"><circle cx=\"6\" cy=\"6\" r=\"3.5\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"20\" markerHeight=\"20\" orient=\"auto\" refX=\"8.5\" refY=\"5\" id=\"markerSj6f0mkek11\"><path d=\"m 1 5 l 0 -3 l 7 3 l -7 3 z\" style=\"stroke-width: 1; stroke-linecap: butt; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"11\" refY=\"10\" id=\"markerSj6f0mkek13\"><path d=\"M 1 5 L 11 10 L 1 15\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"-1\" refY=\"10\" id=\"markerSj6f0mkek15\"><path d=\"M 0 10 L 8 6 L 16 10 L 8 14 Z\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#ffffff\" stroke=\"#000000\"/></marker><marker viewBox=\"0 0 20 20\" markerWidth=\"10\" markerHeight=\"10\" orient=\"auto\" refX=\"-5\" refY=\"10\" id=\"markerSj6f0mkek17\"><path d=\"M 1 4 L 5 16\" style=\"stroke-width: 1; stroke-linecap: round; stroke-dasharray: 10000, 1;\" fill=\"#000000\" stroke=\"#000000\"/></marker></defs><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"StartEvent_1\" transform=\"matrix(1,0,0,1,50,162)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"48\" height=\"48\"></rect><g class=\"djs-visual\"><circle cx=\"18\" cy=\"18\" r=\"18\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></circle></g><rect x=\"0\" y=\"0\" width=\"36\" height=\"36\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"StartEvent_1_label\" transform=\"matrix(1,0,0,1,23,198)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"Collector_04kan6k\" transform=\"matrix(1,0,0,1,156,140)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"132\" height=\"92\"></rect><g class=\"djs-visual\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" rx=\"0\" ry=\"0\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></rect><polyline points=\"120,80 120,20 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><polyline points=\"20,0 20,80 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><text style=\"font-family: Arial,sans-serif; font-size: 12px;\" class=\" djs-label\"><tspan x=\"35.5\" y=\"43.5\">Collector</tspan></text></g><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"TCA_0laok3g\" transform=\"matrix(1,0,0,1,372,140)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"132\" height=\"92\"></rect><g class=\"djs-visual\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" rx=\"0\" ry=\"0\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></rect><polyline points=\"0,60 120,60 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><text style=\"font-family: Arial,sans-serif; font-size: 12px;\" class=\" djs-label\"><tspan x=\"48\" y=\"43.5\">TCA</tspan></text></g><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"Policy_1u1q61z\" transform=\"matrix(1,0,0,1,603,140)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"132\" height=\"92\"></rect><g class=\"djs-visual\"><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" rx=\"0\" ry=\"0\" style=\"stroke-width: 2;\" stroke=\"#000000\" fill=\"#ffffff\"></rect><polyline points=\"0,40 60,0 \" style=\"stroke-width: 2;\" fill=\"none\" stroke=\"#000000\"></polyline><text style=\"font-family: Arial,sans-serif; font-size: 12px;\" class=\" djs-label\"><tspan x=\"43.5\" y=\"43.5\">Policy</tspan></text></g><rect x=\"0\" y=\"0\" width=\"120\" height=\"80\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape selected\" data-element-id=\"EndEvent_1jhpt6o\" transform=\"matrix(1,0,0,1,874,162)\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"48\" height=\"48\"></rect><g class=\"djs-visual\"><circle cx=\"18\" cy=\"18\" r=\"18\" style=\"stroke-width: 4;\" stroke=\"#000000\" fill=\"#ffffff\"></circle></g><rect x=\"0\" y=\"0\" width=\"36\" height=\"36\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect><g class=\" djs-resizer djs-resizer-nw\" transform=\"matrix(1,0,0,1,0,0)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g><g class=\" djs-resizer djs-resizer-ne\" transform=\"matrix(0,1,-1,0,36,0)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g><g class=\" djs-resizer djs-resizer-se\" transform=\"matrix(-1,0,0,-1,36,36)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g><g class=\" djs-resizer djs-resizer-sw\" transform=\"matrix(0,-1,1,0,0,36)\"><rect x=\"-7\" y=\"-7\" width=\"5\" height=\"5\" class=\" djs-resizer-visual\"></rect><rect x=\"-7\" y=\"-7\" width=\"20\" height=\"20\" class=\" djs-resizer-hit\"></rect></g></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"EndEvent_1jhpt6o_label\" transform=\"matrix(1,0,0,1,847,198)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_0wokvsg\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"80\" y=\"174\" width=\"82\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 86,180L156,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"86,180 156,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_0wokvsg_label\" transform=\"matrix(1,0,0,1,76,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_0w8129u\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"270\" y=\"174\" width=\"108\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 276,180L372,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"276,180 372,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_0w8129u_label\" transform=\"matrix(1,0,0,1,279,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_0bdkahu\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"486\" y=\"174\" width=\"123\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 492,180L603,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"492,180 603,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_0bdkahu_label\" transform=\"matrix(1,0,0,1,502.5,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-connection\" data-element-id=\"SequenceFlow_039geog\" style=\"display: block;\"><rect fill=\"none\" class=\"djs-outline\" x=\"717\" y=\"174\" width=\"163\" height=\"12\"></rect><g class=\"djs-visual\"><path d=\"m 723,180L874,180 \" style=\"stroke-width: 2; stroke-linejoin: round; marker-end: url(&quot;#markerSj6f0mkekx&quot;);\" fill=\"none\" stroke=\"#000000\"></path></g><polyline points=\"723,180 874,180 \" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></polyline></g></g><g class=\"djs-group\" xmlns=\"http://www.w3.org/2000/svg\"><g class=\"djs-element djs-shape\" data-element-id=\"SequenceFlow_039geog_label\" transform=\"matrix(1,0,0,1,753.5,170)\" style=\"display: none;\"><rect fill=\"none\" class=\"djs-outline\" x=\"-6\" y=\"-6\" width=\"102\" height=\"32\"></rect><g class=\"djs-visual\"><text style=\"font-family: Arial,sans-serif; font-size: 11px;\" class=\" djs-label\"><tspan x=\"45\" y=\"0\"></tspan></text></g><rect x=\"0\" y=\"0\" width=\"90\" height=\"20\" style=\"stroke-opacity: 0; stroke-width: 15;\" fill=\"none\" stroke=\"#ffffff\" class=\"djs-hit\"></rect></g></g></svg>"
} \ No newline at end of file
diff --git a/test/csit/tests/clamp/UIs/data/TCA_template_properties.yml b/test/csit/tests/clamp/UIs/data/TCA_template_properties.yml
new file mode 100644
index 000000000..3e09fdad5
--- /dev/null
+++ b/test/csit/tests/clamp/UIs/data/TCA_template_properties.yml
@@ -0,0 +1,51 @@
+tosca_definitions_version: cloudify_dsl_1_2
+
+imports:
+- http://www.getcloudify.org/spec/cloudify/3.3.1/types.yaml
+- http://127.0.0.1/1607_prod/type_files/cdap_app.yaml
+
+node_templates:
+ MTCA:
+ type: dcae.nodes.cdap_app
+ properties:
+ service_name: "cdap-mtca-central"
+ deployment_JSON: |-
+ {
+ "clusterService": {"$ref": "/services/vm-cdap-cluster-central/instances/rdm2c"},
+ "namespace": "MTCA",
+ "appNames": [ "cdap-mtca" ],
+ "flowNames": [ "cdap-mtca.TCAVESCollectorFlow" ],
+ "workerNames": ["cdap-mtca.TCADMaaPMRSubscriberWorker", "cdap-mtca.TCADMaaPMRPublisherWorker"],
+ "serviceNames" : [],
+ "apps": {
+ "cdap-mtca": {
+ "jarFile": "/opt/app/cdap-apps/dcae-analytics-mtca-1.0.0.jar",
+ "artifactName": "dcae-analytics-mtca",
+ "version": "1.0.0",
+ "appConfigFileContent": "{config:{ \"appName\":\"cdap-mtca\", \"appDescription\":\"DCAE Analytics Threshold Crossing Alert Application\", \"tcaSubscriberOutputStreamName\":\"TCASubscriberOutputStream\", \"thresholdCalculatorFlowletInstances\":2, \"tcaVESMessageStatusTableName\":\"TCAVESMessageStatusTable\", \"tcaVESMessageStatusTableTTLSeconds\":864000, \"tcaVESAlertsTableName\":\"TCAVESAlertsTable\", \"tcaVESAlertsTableTTLSeconds\":1728000 }}"
+ }
+ },
+
+ "configuration": {
+ "$class": "com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration",
+ "subscriberContentType": "",
+ "subscriberConsumerId": "c12",
+ "subscriberConsumerGroup": "OpenDCAE-c12",
+ "subscriberTimeoutMS": "-1",
+ "subscriberMessageLimit": "-1",
+ "subscriberPollingInterval": "20000",
+ "publisherContentType": "application/json",
+ "publisherMaxBatchSize": "10",
+ "publisherMaxRecoveryQueueSize": "100000",
+ "publisherPollingInterval": "20000",
+ "publisherAlertWindowingTime": "86400",
+ "policyName": "policy.dcae.configuration",
+ "policyScope": "pnf=eNodeB;type=configuration",
+ "policyVersion": "1.0.0",
+ "domain" : "measurementsForVfScaling",
+
+ "signatures" : {
+ }
+
+ }
+ }
diff --git a/test/csit/tests/clamp/UIs/test1_create_template.robot b/test/csit/tests/clamp/UIs/test1_create_template.robot
new file mode 100644
index 000000000..008b13d2a
--- /dev/null
+++ b/test/csit/tests/clamp/UIs/test1_create_template.robot
@@ -0,0 +1,82 @@
+*** Settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+Library HttpLibrary.HTTP
+Library Selenium2Library
+Library XvfbRobot
+
+
+*** Test Cases ***
+Get Requests health check ok
+ CreateSession clamp http://localhost:8080
+ ${resp}= Get Request clamp /restservices/clds/v1/clds/healthcheck
+ Should Be Equal As Strings ${resp.status_code} 200
+
+Open Browser
+# Next line is to be enabled for Headless tests only (jenkins?). To see the tests desable the line.
+ Start Virtual Display 1920 1080
+ Open Browser http://localhost:8080/designer/index.html browser=firefox
+ Set Selenium Speed .2 seconds
+ Set Window Size 1920 1080
+ ${title}= Get Title
+ Should Be Equal CLDS ${title}
+
+Bad Login to Clamp UI and Verify not logged in
+ Input Text locator=username text=bad_login
+ Input Text locator=password text=This_is_bad_password
+ Press Key locator=password key=\\13
+ Wait Until Element Is Visible locator=username timeout=5
+ Page Should Not Contain Element xpath=//*[@class="navbar-brand logo_name ng-binding"] expected=*Hello:admin*
+
+Good Login to Clamp UI and Verify logged in
+ Input Text locator=username text=admin
+ Input Text locator=password text=password
+ Press Key locator=password key=\\13
+ Wait Until Element Is Visible xpath=//*[@class="navbar-brand logo_name ng-binding"] timeout=60
+ Element Text Should Be xpath=//*[@class="navbar-brand logo_name ng-binding"] expected=Hello:admin
+
+Create Template from Menu
+ Wait Until Element Is Visible xpath=//*[@id="navbar"]/ul/li[1]/a timeout=60
+ Click Element xpath=//*[@id="navbar"]/ul/li[1]/a
+ Wait Until Element Is Visible locator=Create Template timeout=60
+ Click Element locator=Create Template
+ Input Text locator=modelName text=template1
+ Click Button locator=OK
+
+Drag and Drop Boxes for template
+ Wait Until Element Is Visible xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[2] timeout=60
+ Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[2] 280 280
+ Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[4] 550 280
+ Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[5] 800 280
+ Drag And Drop By Offset xpath=//*[@id="js-canvas"]/div/div/div[4]/div[1]/div/div[6] 1000 280
+
+Drag and Drop Connectors for template
+ Click Element xpath=//*[starts-with(@data-element-id, "StartEvent_")]
+ Wait Until Element Is Enabled xpath=//*[@id="js-canvas"]/div/div/div[2]/div[5]/div/div/div[2]/div
+ Drag And Drop xpath=//*[@id="js-canvas"]/div/div/div[2]/div[5]/div/div/div[2]/div xpath=//*[starts-with(@data-element-id, "Collector_")]
+ Wait Until Element Is Enabled xpath=//*[@id="js-canvas"]/div/div/div[2]/div[1]/div/div/div[3]/div
+ Drag And Drop xpath=//*[@id="js-canvas"]/div/div/div[2]/div[1]/div/div/div[3]/div xpath=//*[starts-with(@data-element-id, "TCA_")]
+ Wait Until Element Is Enabled xpath=//*[@id="js-canvas"]/div/div/div[2]/div[2]/div/div/div[3]/div
+ Drag And Drop xpath=//*[@id="js-canvas"]/div/div/div[2]/div[2]/div/div/div[3]/div xpath=//*[starts-with(@data-element-id, "Policy_")]
+ Wait Until Element Is Enabled xpath=//*[@id="js-canvas"]/div/div/div[2]/div[3]/div/div/div[3]/div
+ Drag And Drop xpath=//*[@id="js-canvas"]/div/div/div[2]/div[3]/div/div/div[3]/div xpath=//*[starts-with(@data-element-id, "EndEvent_")]
+
+Add Template properties yaml from Menu
+ Click Element xpath=//*[@id="navbar"]/ul/li[1]/a
+ Wait Until Element Is Visible locator=Template Properties timeout=60
+ Click Element locator=Template Properties
+ ${data}= Get Binary File ${CURDIR}${/}data${/}TCA_template_properties.yml
+ Input Text locator=service text=${data}
+ Click Button locator=Close
+
+Save Template from Menu
+ Click Element xpath=//*[@id="navbar"]/ul/li[1]/a
+ Wait Until Element Is Visible locator=Save Template timeout=60
+ Click Element locator=Save Template
+ Wait Until Element Is Visible xpath=//*[@id="alert_message_"] timeout=60
+ Element Text Should Be xpath=//*[@id="alert_message_"] expected=Action Successful:SAVE
+
+Close Browser
+ Close Browser \ No newline at end of file
diff --git a/test/csit/tests/clamp/UIs/test1.robot b/test/csit/tests/clamp/UIs/test2_create_Model.robot
index fafb00042..e8de881bb 100644
--- a/test/csit/tests/clamp/UIs/test1.robot
+++ b/test/csit/tests/clamp/UIs/test2_create_Model.robot
@@ -18,17 +18,11 @@ Open Browser
# Next line is to be enabled for Headless tests only (jenkins?). To see the tests desable the line.
Start Virtual Display 1920 1080
Open Browser http://localhost:8080/designer/index.html browser=firefox
+ Set Selenium Speed .2 seconds
Set Window Size 1920 1080
${title}= Get Title
Should Be Equal CLDS ${title}
-Bad Login to Clamp UI and Verify not logged in
- Input Text locator=username text=bad_login
- Input Text locator=password text=This_is_bad_password
- Press Key locator=password key=\\13
- Wait Until Element Is Visible locator=username timeout=5
- Page Should Not Contain Element xpath=//*[@class="navbar-brand logo_name ng-binding"] expected=*Hello:admin*
-
Good Login to Clamp UI and Verify logged in
Input Text locator=username text=admin
Input Text locator=password text=password
@@ -36,13 +30,20 @@ Good Login to Clamp UI and Verify logged in
Wait Until Element Is Visible xpath=//*[@class="navbar-brand logo_name ng-binding"] timeout=60
Element Text Should Be xpath=//*[@class="navbar-brand logo_name ng-binding"] expected=Hello:admin
-Create Template from Menu
- Wait Until Element Is Visible xpath=//*[@id="navbar"]/ul/li[1]/a timeout=60
- Click Element xpath=//*[@id="navbar"]/ul/li[1]/a
- Wait Until Element Is Visible locator=Create Template timeout=60
- Click Element locator=Create Template
- Input Text locator=modelName text=template1
- Click Button locator=OK
+Create Model from Menu
+ Wait Until Element Is Visible xpath=//*[@id="navbar"]/ul/li[2]/a timeout=60
+ Click Element xpath=//*[@id="navbar"]/ul/li[2]/a
+ Wait Until Element Is Visible locator=Create CL timeout=60
+ Click Element locator=Create CL
+ Input Text locator=modelName text=model1
+ Click Button locator=Create
+
+Save Model from Menu
+ Click Element xpath=//*[@id="navbar"]/ul/li[2]/a
+ Wait Until Element Is Visible locator=Save CL timeout=60
+ Click Element locator=Save CL
+ Wait Until Element Is Visible xpath=//*[@id="alert_message_"] timeout=60
+ Element Text Should Be xpath=//*[@id="alert_message_"] expected=Action Successful:SAVE
Close Browser
- Close Browser \ No newline at end of file
+ Close Browser
diff --git a/test/csit/tests/holmes/testcase/CommonKeywords/HttpRequest.robot b/test/csit/tests/holmes/testcase/CommonKeywords/HttpRequest.robot
new file mode 100644
index 000000000..5b8417404
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/CommonKeywords/HttpRequest.robot
@@ -0,0 +1,37 @@
+*** Settings ***
+Library Collections
+Library RequestsLibrary
+Resource ../RuleMgt/Rule-Keywords.robot
+
+*** Keywords ***
+httpPut
+ [Arguments] ${restHost} ${restUrl} ${data}
+ ${headers} create dictionary Content-Type=application/json;charset=utf-8 Accept=application/json
+ create session microservices ${restHost} ${headers}
+ log ${data}
+ ${putResponse} put request microservices ${restUrl} ${data} \ ${EMPTY}
+ ... ${headers}
+ log ${putResponse}
+ [Return] ${putResponse}
+
+httpGet
+ [Arguments] ${restHost} ${restUrl}
+ create session microservices ${restHost}
+ ${getResponse} get request microservices ${restUrl}
+ [Return] ${getResponse}
+
+httpPost
+ [Arguments] ${restHost} ${restUrl} ${data}
+ ${headers} create dictionary Content-Type=application/json Accept=application/json
+ create session microservices ${restHost} ${headers}
+ log ${data}
+ ${postResponse} post request microservices ${restUrl} ${data}
+ Comment log ${postResponse.content}
+ [Return] ${postResponse}
+
+httpDelete
+ [Arguments] ${restHost} ${restUrl} ${data}
+ ${headers} create dictionary Content-Type=application/json Accept=application/json
+ create session microservices ${restHost} ${headers}
+ ${deleteResponse} delete request microservices ${restUrl} ${data}
+ [Return] ${deleteResponse}
diff --git a/test/csit/tests/holmes/testcase/EngineMgt/Engine-Keywords.robot b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Keywords.robot
new file mode 100644
index 000000000..aac867678
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Keywords.robot
@@ -0,0 +1,34 @@
+*** Settings ***
+Library Collections
+Library RequestsLibrary
+Resource ../CommonKeywords/HttpRequest.robot
+Resource EngineAddr.robot
+
+*** Keywords ***
+deleteEngineRule
+ [Arguments] ${packageName} ${codeFlag}=1
+ [Documentation] ${packageName} :The data type is string!
+ ${headers} create dictionary Content-Type=application/json
+ create session microservices ${engineHost} ${headers}
+ ${deleteUrl} set variable ${engineUrl}/${packageName}
+ ${deleteResponse} delete request microservices ${deleteUrl}
+ log ${deleteResponse.content}
+ run keyword if ${codeFlag}==1 Should be equal as strings ${deleteResponse.status_code} 200
+ run keyword if ${codeFlag}!=1 Should be equal as strings ${deleteResponse.status_code} 499
+ [Return] ${deleteResponse}
+
+verifyEngineRule
+ [Arguments] ${checkContent} ${codeFlag}=1
+ ${response} httpPost ${engineHost} ${engineUrl} ${checkContent}
+ log ${response.content}
+ run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200
+ run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499
+ [Return] ${response}
+
+deployEngineRule
+ [Arguments] ${jsonParams} ${codeFlag}=1
+ ${response} httpPut ${engineHost} ${engineUrl} ${jsonParams}
+ log ${response.content}
+ run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200
+ run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499
+ [Return] ${response}
diff --git a/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot
new file mode 100644
index 000000000..52c6822fc
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot
@@ -0,0 +1,41 @@
+*** Settings ***
+Suite Setup
+Suite Teardown Delete All Sessions
+Test Teardown
+Test Timeout
+Library demjson
+Resource Engine-Keywords.robot
+Resource ../RuleMgt/Rule-Keywords.robot
+
+*** Test Cases ***
+verify_invalid_rule
+ [Documentation] Verify a rule with invalid contents.
+ ${dic1} create dictionary content=123123123
+ ${Jsonparam} encode ${dic1}
+ verifyEngineRule ${Jsonparam} -1
+
+verify_valid_rule
+ [Documentation] Verify a rule with valid contents.
+ ${dic2} create dictionary content=package rule03080001
+ ${Jsonparam} encode ${dic2}
+ verifyEngineRule ${Jsonparam}
+
+deploy_invalid_rule
+ [Documentation] Add a rule with invalid contents to the engine.
+ ${dic3} create dictionary content=789789789 engineid=""
+ ${Jsonparam} encode ${dic3}
+ ${response} deployEngineRule ${Jsonparam} -1
+
+deploy_valid_rule
+ [Documentation] Add a rule with valid contents to the engine.
+ ${dic4} create dictionary content=package rule03080002 engineid=""
+ ${Jsonparam} encode ${dic4}
+ ${response} deployEngineRule ${Jsonparam}
+
+delete_existing_rule
+ [Documentation] Delete an existing rule using an existing package ID from the engine.
+ deleteEngineRule rule03080002
+
+delete_non_existing_rule
+ [Documentation] Delete an existing rule using a non-existing package ID from the engine.
+ deleteEngineRule rule03080002 -1
diff --git a/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot b/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot
new file mode 100644
index 000000000..24c809c97
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot
@@ -0,0 +1,3 @@
+*** Variables ***
+${engineHost} http://${MSB_IP}
+${engineUrl} /onapapi/holmes-engine-mgmt/v1/rule
diff --git a/test/csit/tests/holmes/testcase/EngineMgt/__init__.txt b/test/csit/tests/holmes/testcase/EngineMgt/__init__.txt
new file mode 100644
index 000000000..a69b32dc5
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/EngineMgt/__init__.txt
@@ -0,0 +1,2 @@
+*** Settings ***
+Suite Setup
diff --git a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot
new file mode 100644
index 000000000..b2039174d
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot
@@ -0,0 +1,81 @@
+*** Settings ***
+Library RequestsLibrary
+Library Collections
+Resource RuleAddr.robot
+Resource ../CommonKeywords/HttpRequest.robot
+
+*** Keywords ***
+prepareRules
+ ${rule1} create dictionary rulename=ying001 content=package rule0001 enabled=1 description=this is first description
+ ${rule2} create dictionary rulename=ying002 content=package rule0002 enabled=0 description=this is seconddescription
+ ${rule3} create dictionary rulename=ying003 content=package rule0003 enabled=1 description=this is third description
+ @{rulesList} create list ${rule1} ${rule2} ${rule3}
+ : FOR ${row} IN @{rulesList}
+ \ ${rulejson} encode ${row}
+ \ log ${rulejson}
+ \ createRule ${rulejson}
+
+ruleMgtSuiteVariable
+ ${RULEDIC} create dictionary rulename=gy2017001 description=create a new rule! content=package rule2017001 enabled=1
+ set suite variable ${RULEDIC}
+
+queryConditionRule
+ [Arguments] ${queryParam} ${codeFlag}=1
+ [Documentation] ${queryParam} : The data type is Json .
+ create session microservices ${ruleMgtHost}
+ ${param} set variable queryrequest\=${queryParam}
+ ${headers} set variable
+ ${getResponse} get request microservices ${ruleMgtUrl} ${headers} ${param}
+ log ${getResponse.content}
+ run keyword if ${codeFlag}==1 Should be equal as strings ${getResponse.status_code} 200
+ run keyword if ${codeFlag}!=1 Should be equal as strings ${getResponse.status_code} 499
+ [Return] ${getResponse}
+
+traversalRuleAttribute
+ [Arguments] ${responseJsonData} ${expectAttrDic}
+ [Documentation] ${expectAttrDic} : The data type is dictionary;
+ ... key is the name of the attribute, value is the expected value of the attribute.
+ @{responseRules} Get From Dictionary ${responseJsonData} rules
+ : FOR ${rule} IN @{responseRules}
+ \ log ${rule}
+ \ verifyRuleAttribute ${rule} ${expectAttrDic}
+
+verifyRuleAttribute
+ [Arguments] ${singleRule} ${expectAttrDic}
+ [Documentation] ${expectAttrDic} : The data type is dictionary; key is the name of the attributes to be traversaled, value is the expected value of the attributes.
+ log ${singleRule}
+ log ${expectAttrDic}
+ @{attrsKeys} get dictionary keys ${expectAttrDic}
+ : FOR ${attr} IN @{attrsKeys}
+ \ log ${attr}
+ \ ${actualResponse} get from dictionary ${singleRule} ${attr}
+ \ ${expectResponse} get from dictionary ${expectAttrDic} ${attr}
+ \ Comment log ${actualResponse}
+ \ Comment log ${expectResponse}
+ Should be equal as strings ${actualResponse} ${expectResponse}
+
+createRule
+ [Arguments] ${jsonParams} ${codeFlag}=1
+ [Documentation] ${codeFlag} : The data type is string, defult value is 1, indicating that the case need to assert thatthe statues code is 200.
+ ... Then other values indicating that the case need to assert that the statues code is 499.
+ ${response} httpPut ${ruleMgtHost} ${ruleMgtUrl} ${jsonParams}
+ log ${response.content}
+ run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200
+ run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499
+ [Return] ${response}
+
+modifyRule
+ [Arguments] ${jsonParams} ${codeFlag}=1
+ ${response} httpPost ${ruleMgtHost} ${ruleMgtUrl} ${jsonParams}
+ log ${response.content}
+ run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200
+ run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499
+ [Return] ${response}
+
+deleteRule
+ [Arguments] ${jsonParam} ${codeFlag}=1
+ ${response} httpDelete ${ruleMgtHost} ${ruleMgtUrl} ${jsonParam}
+ log ${response.content}
+ run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200
+ run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499
+ [Return] ${response}
diff --git a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot
new file mode 100644
index 000000000..03ee70849
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot
@@ -0,0 +1,127 @@
+*** Settings ***
+Suite Setup
+Suite Teardown Delete All Sessions
+Test Timeout
+Library demjson
+Resource Rule-Keywords.robot
+
+*** Test Cases ***
+add_valid_rule
+ [Documentation] Add a valid rule.
+ ${dict2} create dictionary rulename=youbowu0314 description=create a new rule! content=package rule03140002 enabled=1
+ ${jsonParams} encode ${dict2}
+ ${response} createRule ${jsonParams}
+ ${respJson} to json ${response.content}
+ ${RULEID} get from dictionary ${respJson} ruleid
+ set global variable ${RULEID}
+ log ${RULEID}
+
+add_invalid_content_rule
+ [Documentation] Add an invalid rule of which the content is incorrect!!
+ ${dict1} create dictionary rulename=gy0307001 description=create a new rule! content=123123123 enabled=1
+ ${jsonParams} encode ${dict1}
+ ${response} createRule ${jsonParams} -1
+ log ${response.content}
+
+add_deficient_rule
+ [Documentation] Add an invalid rule of which some mandatory fields are missing.(rulename)
+ ${dict3} create dictionary description=create a valid rule! content=package rule2017 enabled=1
+ ${jsonParams} encode ${dict3}
+ ${response} createRule ${jsonParams} -1
+
+query_rule_with_existing_id
+ [Documentation] Query a rule with an existing ID.
+ should not be empty ${RULEID}
+ ${response} queryConditionRule {"ruleid":"${RULEID}"}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}!=1 fail Can't find the rule with the specified ruleid.
+
+query_rule_with_non_existing_id
+ [Documentation] Query a rule with a non-existing ID.
+ ${response} queryConditionRule {"ruleid":"invalidid"}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}!=0 fail
+
+query_rule_with_partial_existing_name
+ [Documentation] Query rules with (a part of) an existing name.
+ ${response} queryConditionRule {"rulename":"youbowu"}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}<1 fail Can't find the rule with (a part of) an existing name
+
+query_rule_with_partial_non_existing_name
+ [Documentation] Query rules with (a part of) a non-existing name.
+ ${response} queryConditionRule {"rulename":"zte2017"}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}!=0 fail
+
+query_rule_with_vaild_status
+ [Documentation] Query rules with a valid status.
+ ${response} queryConditionRule {"enabled":1}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}<0 fail Can't find the rule with the status valued 1.
+
+query_rule_with_invalid_status
+ [Documentation] Query rules with an invalid status.
+ ${response} queryConditionRule {"enabled":99}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}!=0 fail
+
+query_rule_with_empty_status
+ [Documentation] Query rules with the status left empty.
+ ${response} queryConditionRule {"enabled":""}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}!=0 fail
+
+query_rule_with_combinational_fields
+ [Documentation] Query rules using the combination of different fields.
+ ${dic} create dictionary rulename=youbowu0314 enabled=1
+ ${paramJson} encode ${dic}
+ ${response} queryConditionRule ${paramJson}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}<1 fail Can't find the rules with the combination of different fields.
+ ... ELSE traversalRuleAttribute ${respJson} ${dic}
+
+modify_rule_with_status
+ [Documentation] modify the rule with a valid status.
+ ${dic} create dictionary ruleid=${RULEID} enabled=0 content=package rule03140002
+ ${modifyParam} encode ${dic}
+ ${modifyResp} modifyRule ${modifyParam}
+ ${response} queryConditionRule {"ruleid":"${RULEID}"}
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}!=1 fail query rule fails! (can't find the rule modified!)
+ ... ELSE traversalRuleAttribute ${respJson} ${dic}
+
+modify_rule_with_invalid_status
+ [Documentation] modify the rule with an invalid status.
+ ${dic} create dictionary ruleid=${RULEID} enabled=88 content=package rule03140002
+ ${modifyParam} encode ${dic}
+ ${modifyResponse} modifyRule ${modifyParam} -1
+
+modify_rule_with_description
+ [Documentation] modify the description of the rule with the new string.
+ ${dic} create dictionary ruleid=${RULEID} description=now, i modifying the description of the rule. content=package rule03140002
+ ${modifyParam} encode ${dic}
+ ${modifyResp} modifyRule ${modifyParam}
+ ${response} queryConditionRule {"ruleid":"${RULEID}"} 1
+ ${respJson} to json ${response.content}
+ ${count} get from dictionary ${respJson} totalcount
+ run keyword if ${count}!=1 fail query rule fails!
+ ... ELSE traversalRuleAttribute ${respJson} ${dic}
+
+delete_existing_rule
+ [Documentation] Delete an existing rule.
+ should not be empty ${RULEID}
+ deleteRule {"ruleid":"${RULEID}"}
+
+delete_non_existing_rule
+ [Documentation] Delete a non-existing rule.
+ deleteRule {"ruleid":"${RULEID}"} -1
diff --git a/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot b/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot
new file mode 100644
index 000000000..ec565e9ab
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot
@@ -0,0 +1,3 @@
+*** Variables ***
+${ruleMgtHost} http://${MSB_IP}
+${ruleMgtUrl} /onapapi/holmes-rule-mgmt/v1/rule
diff --git a/test/csit/tests/holmes/testcase/RuleMgt/__init__.txt b/test/csit/tests/holmes/testcase/RuleMgt/__init__.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/test/csit/tests/holmes/testcase/RuleMgt/__init__.txt
diff --git a/test/csit/tests/msb/startup/__init__.robot b/test/csit/tests/msb/startup/__init__.robot
new file mode 100644
index 000000000..2f6452622
--- /dev/null
+++ b/test/csit/tests/msb/startup/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation Microservices Service Bus - Startup
diff --git a/test/csit/tests/msb/startup/test1.robot b/test/csit/tests/msb/startup/test1.robot
new file mode 100644
index 000000000..99ad603c7
--- /dev/null
+++ b/test/csit/tests/msb/startup/test1.robot
@@ -0,0 +1,16 @@
+*** Settings ***
+Library RequestsLibrary
+
+*** Test Cases ***
+Liveness Test
+ [Documentation] Check various endpoints for basic liveness check
+ Create Session msb http://${MSB_IAG_IP}:80
+ CheckUrl msb /msb
+ CheckUrl msb /iui/microservices/default.html
+
+*** Keywords ***
+CheckUrl
+ [Arguments] ${session} ${path}
+ ${resp}= Get Request ${session} ${path}
+ Should Be Equal As Integers ${resp.status_code} 200
+
diff --git a/test/csit/tests/vfc/nfvo-lcm/test.robot b/test/csit/tests/vfc/nfvo-lcm/test.robot
new file mode 100644
index 000000000..907558f0c
--- /dev/null
+++ b/test/csit/tests/vfc/nfvo-lcm/test.robot
@@ -0,0 +1,14 @@
+*** settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+
+*** Variables ***
+@{return_ok_list}= 200 201 202
+${queryswagger_url} /api/nslcm/v1/swagger.json
+
+*** Test Cases ***
+NslcmSwaggerTest
+ [Documentation] query nslcm swagger info rest test
+ Should Be Equal 2.0 2.0