aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bootstrap/jenkins/vagrant/jjb/java-jobs.yaml255
-rw-r--r--bootstrap/jenkins/vagrant/settings.xml11
-rw-r--r--bootstrap/vagrant-onap/Vagrantfile1
-rwxr-xr-xbootstrap/vagrant-onap/lib/robot49
-rwxr-xr-xbootstrap/vagrant-onap/lib/vfc35
-rw-r--r--bootstrap/vagrant-onap/tests/test_robot48
-rw-r--r--bootstrap/vagrant-onap/tests/test_vfc20
-rw-r--r--documentation/api-dependencies/onapapidependencies.dot9
-rw-r--r--pom.xml2
-rw-r--r--test/csit/plans/cli/sanity-check/setup.sh32
-rw-r--r--test/csit/plans/cli/sanity-check/teardown.sh17
-rw-r--r--test/csit/plans/cli/sanity-check/testplan.txt18
-rw-r--r--test/csit/plans/msb/rest-service/setup.sh55
-rw-r--r--test/csit/plans/msb/rest-service/teardown.sh21
-rw-r--r--test/csit/plans/msb/rest-service/testplan.txt4
-rw-r--r--test/csit/plans/msb/sanity-check/setup.sh44
-rw-r--r--test/csit/plans/msb/sanity-check/teardown.sh20
-rw-r--r--test/csit/plans/msb/sanity-check/testplan.txt3
-rw-r--r--test/csit/plans/msb/tcp-service/setup.sh53
-rw-r--r--test/csit/plans/msb/tcp-service/teardown.sh21
-rw-r--r--test/csit/plans/msb/tcp-service/testplan.txt4
-rwxr-xr-xtest/csit/plans/vfc-gvnfm-vnflcm/sanity-check/setup.sh44
-rwxr-xr-xtest/csit/plans/vfc-gvnfm-vnflcm/sanity-check/teardown.sh22
-rw-r--r--test/csit/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt3
-rwxr-xr-xtest/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh44
-rwxr-xr-xtest/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh22
-rw-r--r--test/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt3
-rwxr-xr-xtest/csit/plans/vfc-gvnfm-vnfres/sanity-check/setup.sh44
-rwxr-xr-xtest/csit/plans/vfc-gvnfm-vnfres/sanity-check/teardown.sh22
-rw-r--r--test/csit/plans/vfc-gvnfm-vnfres/sanity-check/testplan.txt3
-rw-r--r--test/csit/plans/vfc-nfvo-catalog/sanity-check/setup.sh44
-rw-r--r--test/csit/plans/vfc-nfvo-catalog/sanity-check/teardown.sh22
-rw-r--r--test/csit/plans/vfc-nfvo-catalog/sanity-check/testplan.txt3
-rwxr-xr-xtest/csit/plans/vfc-nfvo-lcm/sanity-check/setup.sh58
-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
-rw-r--r--test/csit/plans/vfc-nfvo-resmanagement/sanity-check/setup.sh44
-rw-r--r--test/csit/plans/vfc-nfvo-resmanagement/sanity-check/teardown.sh22
-rw-r--r--test/csit/plans/vfc-nfvo-resmanagement/sanity-check/testplan.txt3
-rw-r--r--test/csit/plans/vnfsdk-refrepo/sanity-check/setup.sh8
-rwxr-xr-xtest/csit/scripts/clamp/start_clamp_containers.sh2
-rw-r--r--test/csit/scripts/cli/startup.sh18
-rw-r--r--test/csit/tests/clamp/TCA/01__TCA.robot (renamed from test/csit/tests/clamp/TCA/test1.robot)1
-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/01__Create_template.robot81
-rw-r--r--test/csit/tests/clamp/UIs/02__Create_model.robot (renamed from test/csit/tests/clamp/UIs/test1.robot)32
-rw-r--r--test/csit/tests/clamp/UIs/data/TCA_template_properties.yml51
-rw-r--r--test/csit/tests/cli/startup/__init__.robot2
-rw-r--r--test/csit/tests/cli/startup/startup_check.robot16
-rw-r--r--test/csit/tests/msb/rest-service-api-gateway/__init__.robot2
-rw-r--r--test/csit/tests/msb/rest-service-api-gateway/test1.robot9
-rw-r--r--test/csit/tests/msb/rest-service-discovery/__init__.robot2
-rw-r--r--test/csit/tests/msb/rest-service-discovery/test1.robot14
-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/msb/tcp-service-access/__init__.robot2
-rw-r--r--test/csit/tests/msb/tcp-service-access/test1.robot16
-rw-r--r--test/csit/tests/msb/tcp-service-access/test2.robot15
-rw-r--r--test/csit/tests/msb/tcp-service-discovery/__init__.robot2
-rw-r--r--test/csit/tests/msb/tcp-service-discovery/test1.robot14
-rw-r--r--test/csit/tests/vfc/gvnfm-vnflcm/test.robot14
-rw-r--r--test/csit/tests/vfc/gvnfm-vnfmgr/test.robot14
-rw-r--r--test/csit/tests/vfc/gvnfm-vnfres/test.robot14
-rw-r--r--test/csit/tests/vfc/nfvo-catalog/test.robot19
-rw-r--r--test/csit/tests/vfc/nfvo-lcm/test.robot21
-rw-r--r--test/csit/tests/vfc/nfvo-resmanagement/test.robot16
-rw-r--r--test/csit/tests/vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot37
-rw-r--r--version-manifest/pom.xml19
-rw-r--r--version-manifest/src/main/java/org/onap/integration/versionmanifest/VersionCheckMojo.java79
-rw-r--r--version-manifest/src/main/resources/java-manifest.csv2
71 files changed, 1614 insertions, 80 deletions
diff --git a/bootstrap/jenkins/vagrant/jjb/java-jobs.yaml b/bootstrap/jenkins/vagrant/jjb/java-jobs.yaml
index ab887d903..cea15b668 100644
--- a/bootstrap/jenkins/vagrant/jjb/java-jobs.yaml
+++ b/bootstrap/jenkins/vagrant/jjb/java-jobs.yaml
@@ -3,15 +3,39 @@
jobs:
- 'java-{project}'
project:
+ - 'aaf_authz':
+ repo: 'aaf/authz'
+ pom: 'pom.xml'
+ - 'aaf_cadi':
+ repo: 'aaf/cadi'
+ pom: 'pom.xml'
+ - 'aaf_inno':
+ repo: 'aaf/inno'
+ pom: 'pom.xml'
+ - 'aaf_luaplugin':
+ repo: 'aaf/luaplugin'
+ pom: 'pom.xml'
- 'aai_aai-common':
repo: 'aai/aai-common'
pom: 'pom.xml'
- 'aai_aai-service':
repo: 'aai/aai-service'
pom: 'pom.xml'
+ - 'aai_champ':
+ repo: 'aai/champ'
+ pom: 'pom.xml'
- 'aai_data-router':
repo: 'aai/data-router'
pom: 'pom.xml'
+ - 'aai_esr-gui':
+ repo: 'aai/esr-gui'
+ pom: 'pom.xml'
+ - 'aai_esr-server':
+ repo: 'aai/esr-server'
+ pom: 'pom.xml'
+ - 'aai_gizmo':
+ repo: 'aai/gizmo'
+ pom: 'pom.xml'
- 'aai_logging-service':
repo: 'aai/logging-service'
pom: 'pom.xml'
@@ -45,12 +69,45 @@
- 'appc_deployment':
repo: 'appc/deployment'
pom: 'pom.xml'
+ - 'ccsdk_dashboard':
+ repo: 'ccsdk/dashboard'
+ pom: 'pom.xml'
+ - 'ccsdk_distribution':
+ repo: 'ccsdk/distribution'
+ pom: 'pom.xml'
- 'ccsdk_parent':
repo: 'ccsdk/parent'
pom: 'pom.xml'
+ - 'ccsdk_platform_blueprints':
+ repo: 'ccsdk/platform/blueprints'
+ pom: 'pom.xml'
+ - 'ccsdk_platform_nbapi':
+ repo: 'ccsdk/platform/nbapi'
+ pom: 'pom.xml'
+ - 'ccsdk_platform_plugins':
+ repo: 'ccsdk/platform/plugins'
+ pom: 'pom.xml'
+ - 'ccsdk_sli_adaptors':
+ repo: 'ccsdk/sli/adaptors'
+ pom: 'pom.xml'
- 'ccsdk_sli_core':
repo: 'ccsdk/sli/core'
pom: 'pom.xml'
+ - 'ccsdk_sli_northbound':
+ repo: 'ccsdk/sli/northbound'
+ pom: 'pom.xml'
+ - 'ccsdk_sli_plugins':
+ repo: 'ccsdk/sli/plugins'
+ pom: 'pom.xml'
+ - 'ccsdk_storage_esaas':
+ repo: 'ccsdk/storage/esaas'
+ pom: 'pom.xml'
+ - 'ccsdk_storage_pgaas':
+ repo: 'ccsdk/storage/pgaas'
+ pom: 'pom.xml'
+ - 'ccsdk_utils':
+ repo: 'ccsdk/utils'
+ pom: 'pom.xml'
- 'clamp':
repo: 'clamp'
pom: 'pom.xml'
@@ -87,24 +144,132 @@
- 'dcae_pgaas_cdf_src_cdf-prop-value_cdf-util':
repo: 'dcae/pgaas'
pom: 'cdf/src/cdf-prop-value/cdf-util/pom.xml'
+ - 'dcaegen2':
+ repo: 'dcaegen2'
+ pom: 'pom.xml'
+ - 'dcaegen2_analytics':
+ repo: 'dcaegen2/analytics'
+ pom: 'pom.xml'
+ - 'dcaegen2_analytics_tca':
+ repo: 'dcaegen2/analytics/tca'
+ pom: 'pom.xml'
+ - 'dcaegen2_collectors':
+ repo: 'dcaegen2/collectors'
+ pom: 'pom.xml'
+ - 'dcaegen2_collectors_snmptrap':
+ repo: 'dcaegen2/collectors/snmptrap'
+ pom: 'pom.xml'
+ - 'dcaegen2_collectors_ves':
+ repo: 'dcaegen2/collectors/ves'
+ pom: 'pom.xml'
+ - 'dcaegen2_deployments':
+ repo: 'dcaegen2/deployments'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform':
+ repo: 'dcaegen2/platform'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_blueprints':
+ repo: 'dcaegen2/platform/blueprints'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_cdapbroker':
+ repo: 'dcaegen2/platform/cdapbroker'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_cli':
+ repo: 'dcaegen2/platform/cli'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_configbinding':
+ repo: 'dcaegen2/platform/configbinding'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_deployment-handler':
+ repo: 'dcaegen2/platform/deployment-handler'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_inventory-api':
+ repo: 'dcaegen2/platform/inventory-api'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_plugins':
+ repo: 'dcaegen2/platform/plugins'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_policy-handler':
+ repo: 'dcaegen2/platform/policy-handler'
+ pom: 'pom.xml'
+ - 'dcaegen2_platform_servicechange-handler':
+ repo: 'dcaegen2/platform/servicechange-handler'
+ pom: 'pom.xml'
+ - 'dcaegen2_utils':
+ repo: 'dcaegen2/utils'
+ pom: 'pom.xml'
- 'demo':
repo: 'demo'
pom: 'pom.xml'
+ - 'dmaap_buscontroller':
+ repo: 'dmaap/buscontroller'
+ pom: 'pom.xml'
+ - 'dmaap_datarouter':
+ repo: 'dmaap/datarouter'
+ pom: 'pom.xml'
+ - 'dmaap_dbcapi':
+ repo: 'dmaap/dbcapi'
+ pom: 'pom.xml'
+ - 'dmaap_messagerouter_dmaapclient':
+ repo: 'dmaap/messagerouter/dmaapclient'
+ pom: 'pom.xml'
+ - 'dmaap_messagerouter_messageservice':
+ repo: 'dmaap/messagerouter/messageservice'
+ pom: 'pom.xml'
+ - 'dmaap_messagerouter_mirroragent':
+ repo: 'dmaap/messagerouter/mirroragent'
+ pom: 'pom.xml'
+ - 'dmaap_messagerouter_msgrtr':
+ repo: 'dmaap/messagerouter/msgrtr'
+ pom: 'pom.xml'
- 'ecompsdkos_ecomp-sdk':
repo: 'ecompsdkos'
pom: 'ecomp-sdk/pom.xml'
+ - 'holmes_common':
+ repo: 'holmes/common'
+ pom: 'pom.xml'
+ - 'holmes_dsa':
+ repo: 'holmes/dsa'
+ pom: 'pom.xml'
+ - 'holmes_engine-management':
+ repo: 'holmes/engine-management'
+ pom: 'pom.xml'
+ - 'holmes_rule-management':
+ repo: 'holmes/rule-management'
+ pom: 'pom.xml'
+ - 'integration':
+ repo: 'integration'
+ pom: 'pom.xml'
+ - 'modeling_toscaparsers_javatoscachecker':
+ repo: 'modeling/toscaparsers'
+ pom: 'javatoscachecker/pom.xml'
- 'msb_apigateway':
repo: 'msb/apigateway'
pom: 'pom.xml'
- 'msb_discovery':
repo: 'msb/discovery'
pom: 'pom.xml'
+ - 'msb_java-sdk':
+ repo: 'msb/java-sdk'
+ pom: 'pom.xml'
+ - 'msb_swagger-sdk':
+ repo: 'msb/swagger-sdk'
+ pom: 'pom.xml'
- 'mso':
repo: 'mso'
pom: 'pom.xml'
- 'mso_libs':
repo: 'mso/libs'
pom: 'pom.xml'
+ - 'multicloud_framework_multivimbroker':
+ repo: 'multicloud/framework'
+ pom: 'multivimbroker/pom.xml'
+ - 'multicloud_openstack':
+ repo: 'multicloud/openstack'
+ pom: 'pom.xml'
+ - 'multicloud_openstack_vmware':
+ repo: 'multicloud/openstack/vmware'
+ pom: 'pom.xml'
- 'ncomp_cdap':
repo: 'ncomp/cdap'
pom: 'pom.xml'
@@ -126,9 +291,18 @@
- 'ncomp_utils':
repo: 'ncomp/utils'
pom: 'pom.xml'
+ - 'oom_registrator':
+ repo: 'oom'
+ pom: 'registrator/pom.xml'
+ - 'oom_registrator':
+ repo: 'oom/registrator'
+ pom: 'pom.xml'
- 'oparent':
repo: 'oparent'
pom: 'pom.xml'
+ - 'policy_api':
+ repo: 'policy/api'
+ pom: 'pom.xml'
- 'policy_common':
repo: 'policy/common'
pom: 'pom.xml'
@@ -144,9 +318,21 @@
- 'policy_engine':
repo: 'policy/engine'
pom: 'pom.xml'
+ - 'policy_gui':
+ repo: 'policy/gui'
+ pom: 'pom.xml'
+ - 'policy_pap':
+ repo: 'policy/pap'
+ pom: 'pom.xml'
+ - 'policy_pdp':
+ repo: 'policy/pdp'
+ pom: 'pom.xml'
- 'portal':
repo: 'portal'
pom: 'pom.xml'
+ - 'portal_sdk_ecomp-sdk':
+ repo: 'portal/sdk'
+ pom: 'ecomp-sdk/pom.xml'
- 'sdc':
repo: 'sdc'
pom: 'pom.xml'
@@ -156,12 +342,18 @@
- 'sdc_sdc-distribution-client':
repo: 'sdc/sdc-distribution-client'
pom: 'pom.xml'
+ - 'sdc_sdc-docker-base':
+ repo: 'sdc/sdc-docker-base'
+ pom: 'pom.xml'
- 'sdc_sdc-titan-cassandra':
repo: 'sdc/sdc-titan-cassandra'
pom: 'pom.xml'
- 'sdc_sdc-tosca':
repo: 'sdc/sdc-tosca'
pom: 'pom.xml'
+ - 'sdc_sdc-workflow-designer':
+ repo: 'sdc/sdc-workflow-designer'
+ pom: 'pom.xml'
- 'sdc_sdc_common':
repo: 'sdc/sdc_common'
pom: 'pom.xml'
@@ -186,45 +378,72 @@
- 'so_libs':
repo: 'so/libs'
pom: 'pom.xml'
+ - 'testsuite_heatbridge':
+ repo: 'testsuite'
+ pom: 'heatbridge/pom.xml'
+ - 'testsuite_heatbridge':
+ repo: 'testsuite/heatbridge'
+ pom: 'pom.xml'
- 'ui_dmaapbc':
repo: 'ui/dmaapbc'
pom: 'pom.xml'
- - 'vfc_gvnfm_vnflcm_lcm':
+ - 'usecase-ui':
+ repo: 'usecase-ui'
+ pom: 'pom.xml'
+ - 'vfc_gvnfm_vnflcm':
repo: 'vfc/gvnfm/vnflcm'
- pom: 'lcm/pom.xml'
- - 'vfc_gvnfm_vnfmgr_mgr':
+ pom: 'pom.xml'
+ - 'vfc_gvnfm_vnfmgr':
repo: 'vfc/gvnfm/vnfmgr'
- pom: 'mgr/pom.xml'
- - 'vfc_gvnfm_vnfres_res':
+ pom: 'pom.xml'
+ - 'vfc_gvnfm_vnfres':
repo: 'vfc/gvnfm/vnfres'
- pom: 'res/pom.xml'
- - 'vfc_nfvo_driver_ems_ems_sems_boco_ems-driver':
+ pom: 'pom.xml'
+ - 'vfc_nfvo_catalog':
+ repo: 'vfc/nfvo/catalog'
+ pom: 'pom.xml'
+ - 'vfc_nfvo_driver_ems':
repo: 'vfc/nfvo/driver/ems'
- pom: 'ems/sems/boco/ems-driver/pom.xml'
+ pom: 'pom.xml'
- 'vfc_nfvo_driver_sfc_zte_sfc-driver':
repo: 'vfc/nfvo/driver/sfc'
pom: 'zte/sfc-driver/pom.xml'
- - 'vfc_nfvo_driver_vnfm_gvnfm_gvnfmadapter':
- repo: 'vfc/nfvo/driver/vnfm/gvnfm'
- pom: 'gvnfmadapter/pom.xml'
- - 'vfc_nfvo_driver_vnfm_gvnfm_juju_juju-vnfmadapter':
+ - 'vfc_nfvo_driver_vnfm_gvnfm':
repo: 'vfc/nfvo/driver/vnfm/gvnfm'
- pom: 'juju/juju-vnfmadapter/pom.xml'
- - 'vfc_nfvo_driver_vnfm_svnfm_huawei_vnfmadapter':
- repo: 'vfc/nfvo/driver/vnfm/svnfm'
- pom: 'huawei/vnfmadapter/pom.xml'
- - 'vfc_nfvo_driver_vnfm_svnfm_zte_vmanager':
+ pom: 'pom.xml'
+ - 'vfc_nfvo_driver_vnfm_svnfm':
repo: 'vfc/nfvo/driver/vnfm/svnfm'
- pom: 'zte/vmanager/pom.xml'
+ pom: 'pom.xml'
- 'vfc_nfvo_lcm':
repo: 'vfc/nfvo/lcm'
pom: 'pom.xml'
- 'vfc_nfvo_resmanagement':
repo: 'vfc/nfvo/resmanagement'
pom: 'pom.xml'
+ - 'vfc_nfvo_wfengine_activiti-extension':
+ repo: 'vfc/nfvo/wfengine'
+ pom: 'activiti-extension/pom.xml'
+ - 'vfc_nfvo_wfengine_wfenginemgrservice':
+ repo: 'vfc/nfvo/wfengine'
+ pom: 'wfenginemgrservice/pom.xml'
+ - 'vfc_nfvo_wfengine_wso2':
+ repo: 'vfc/nfvo/wfengine'
+ pom: 'wso2/pom.xml'
- 'vid':
repo: 'vid'
pom: 'pom.xml'
- 'vid_asdcclient':
repo: 'vid/asdcclient'
pom: 'pom.xml'
+ - 'vnfsdk_functest':
+ repo: 'vnfsdk/functest'
+ pom: 'pom.xml'
+ - 'vnfsdk_lctest':
+ repo: 'vnfsdk/lctest'
+ pom: 'pom.xml'
+ - 'vnfsdk_pkgtools':
+ repo: 'vnfsdk/pkgtools'
+ pom: 'pom.xml'
+ - 'vnfsdk_refrepo':
+ repo: 'vnfsdk/refrepo'
+ pom: 'pom.xml'
diff --git a/bootstrap/jenkins/vagrant/settings.xml b/bootstrap/jenkins/vagrant/settings.xml
index 41da9bec3..60fd7e8c9 100644
--- a/bootstrap/jenkins/vagrant/settings.xml
+++ b/bootstrap/jenkins/vagrant/settings.xml
@@ -33,6 +33,17 @@
<enabled>true</enabled>
</snapshots>
</repository>
+ <repository>
+ <id>open-o-thirdparty</id>
+ <name>open-o-thirdparty</name>
+ <url>https://nexus.open-o.org/content/repositories/thirdparty/</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
</repositories>
<pluginRepositories>
<pluginRepository>
diff --git a/bootstrap/vagrant-onap/Vagrantfile b/bootstrap/vagrant-onap/Vagrantfile
index ff3590882..148d8ed48 100644
--- a/bootstrap/vagrant-onap/Vagrantfile
+++ b/bootstrap/vagrant-onap/Vagrantfile
@@ -345,6 +345,7 @@ Vagrant.configure("2") do |config|
vfc.vm.provider "openstack" do |v|
v.server_name = 'vfc'
end
+ vfc.vm.provision 'docker'
vfc.vm.provision 'shell' do |s|
s.path = 'vagrant_utils/postinstall.sh'
s.args = ['vfc']
diff --git a/bootstrap/vagrant-onap/lib/robot b/bootstrap/vagrant-onap/lib/robot
index 4102680ef..34b431a54 100755
--- a/bootstrap/vagrant-onap/lib/robot
+++ b/bootstrap/vagrant-onap/lib/robot
@@ -2,12 +2,34 @@
set -o xtrace
-# install_testsuite_properties() - Download and install testsuite properties
-function install_testsuite_properties {
+source /var/onap/functions
+
+robot_src_folder=$git_src_folder/testsuite
+robot_repos=("heatbridge" "properties" "python-testing-utils")
+
+# clone_robot_repos() - Function that clones Robot source repo.
+function clone_robot_repos {
+ clone_repo testsuite $robot_src_folder
+
+ for dirc in ${robot_repos[@]}; do
+ clone_repo testsuite/$dirc $robot_src_folder/$dirc
+ done
+}
+
+# compile_robot_repos() - Function that compile Robot source repo.
+function compile_robot_repos {
+ install_python_package tox
+ compile_src $robot_src_folder
+
+ for dirc in ${robot_repos[@]}; do
+ compile_src $robot_src_folder/$dirc
+ done
+}
+
+# _setup_ete_folder() - Create and copy ete folder structure
+function _setup_ete_folder {
mkdir -p /opt/eteshare/config
- local src_folder=/opt/testsuite/properties
- clone_repo testsuite/properties $src_folder
cp $src_folder/integration_* /opt/eteshare/config
cp $src_folder/vm_config2robot.sh /opt/eteshare/config
cp $src_folder/ete.sh /opt
@@ -17,15 +39,26 @@ function install_testsuite_properties {
chmod +x /opt/demo.sh
}
-# run_testsuite_image() - Pull and run testsuite docker image
-function run_testsuite_image {
+# get_robot_images() - Pull or build the Robot Docker images
+function get_robot_images {
pull_openecomp_image testsuite
+}
+
+# install_robot() - Run Robot services
+function install_robot {
docker rm -f openecompete_container
docker run -d --name openecompete_container -v /opt/eteshare:/share -p 88:88 $nexus_docker_repo/openecomp/testsuite:$docker_version
}
# init_robot() - Function that initialize Robot services
function init_robot {
- install_testsuite_properties
- run_testsuite_image
+ if [[ "$clone_repo" == "True" ]]; then
+ clone_robot_repos
+ _setup_ete_folder
+ if [[ "$compile_repo" == "True" ]]; then
+ compile_robot_repos
+ fi
+ fi
+ get_robot_images
+ install_robot
}
diff --git a/bootstrap/vagrant-onap/lib/vfc b/bootstrap/vagrant-onap/lib/vfc
index 9c232be28..6fa42182e 100755
--- a/bootstrap/vagrant-onap/lib/vfc
+++ b/bootstrap/vagrant-onap/lib/vfc
@@ -23,6 +23,11 @@ function compile_all_vfc_repos {
tox -e py27
popd
+
+ pushd $src_folder/nfvo/lcm
+ tox -e py27
+ popd
+
# TODO(sshank): Add compile for other vfc_repos. (Both Java and Python based.)
# Python based:
# gvnfm/vnflcm/lcm
@@ -30,7 +35,6 @@ function compile_all_vfc_repos {
# gvnfm/vnfres/res
# nfvo/driver/vnfm/gvnfm/gvnfmadapter
# nfvo/driver/vnfm/svnfm/zte/vmanager
- # nfvo/lcm
# Java based:
# nfvo/catalog
@@ -42,10 +46,34 @@ function compile_all_vfc_repos {
# nfvo/wfengine
}
+# build_nfvo_lcm_image() - Build VFC NFVO LCM docker image
+function build_nfvo_lcm_image {
+ pushd $src_folder/nfvo/lcm/docker
+ sed -i '$ d' build_image.sh
+ ./build_image.sh
+ popd
+}
+
+# get_vfc_images() - Build VFC docker images
+function get_vfc_images {
+ if [[ "$build_image" == "True" ]]; then
+ install_docker
+ build_nfvo_lcm_image
+ # TODO(sshank): Add other VFC component docker image builds when they are ready.
+ else
+ pull_docker_image nexus3.onap.org:10003/onap/vfc/nslcm latest
+ fi
+}
+
+# run_vfc_images() - Run VFC docker images
+function run_vfc_images() {
+ docker run -d --name vfc-nslcm -p 3306:3306 -p 8403:8403 -e MSB_ADDR=127.0.0.1 nexus3.onap.org:10003/onap/vfc/nslcm
+ # TODO(sshank): Run other VFC component docker images when they are ready.
+}
+
# install_vfc() - Download and install vfc service from source code
function install_vfc {
- # TODO(sshank): Add further installation steps if necessary.
- echo ""
+ run_vfc_images
}
# init_vfc() - Function that initialize VF-C services
@@ -59,5 +87,6 @@ function init_vfc {
fi
fi
+ get_vfc_images
install_vfc
}
diff --git a/bootstrap/vagrant-onap/tests/test_robot b/bootstrap/vagrant-onap/tests/test_robot
new file mode 100644
index 000000000..702401e2a
--- /dev/null
+++ b/bootstrap/vagrant-onap/tests/test_robot
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+source /var/onap_tests/_test_base
+source /var/onap/robot
+
+covered_functions=(
+"clone_robot_repos" "compile_robot_repos" "get_robot_images" "install_robot"
+)
+
+# test_clone_robot_repos() - Verify that Robot repositories are cloned properly
+function test_clone_robot_repos {
+ clone_robot_repos
+
+ asserts_file_exist $robot_src_folder/LICENSE.TXT
+ asserts_file_exist $robot_src_folder/heatbridge/pom.xml
+ asserts_file_exist $robot_src_folder/properties/LICENSE.TXT
+ asserts_file_exist $robot_src_folder/python-testing-utils/LICENSE.TXT
+}
+
+# test_compile_robot_repos() - Verify that Robot source code can be compiled properly
+function test_compile_robot_repos {
+ clone_robot_repos
+ compile_robot_repos
+
+ asserts_file_exist $robot_src_folder/heatbridge/target/maven-python/dist/heatbridge-0.3.0.dev0-py2-none-any.whl
+}
+
+# test_get_robot_images() - Verify that Robot Docker images are retrieved
+function test_get_mr_images {
+ get_robot_images
+
+ asserts_image testsuite
+}
+
+# test_install_robot() - Verify the built and start of Robot services
+function test_install_message_router {
+ clone_robot_repos
+ get_robot_images
+ install_robot
+
+ asserts_image_running testsuite
+}
+
+if [ "$1" != '*' ]; then
+ unset covered_functions
+ covered_functions=$1
+fi
+main "${covered_functions[@]}"
diff --git a/bootstrap/vagrant-onap/tests/test_vfc b/bootstrap/vagrant-onap/tests/test_vfc
index 338280948..e948ccedb 100644
--- a/bootstrap/vagrant-onap/tests/test_vfc
+++ b/bootstrap/vagrant-onap/tests/test_vfc
@@ -5,12 +5,15 @@ source /var/onap/vfc
covered_functions=(
"clone_all_vfc_repos" "compile_all_vfc_repos" "install_vfc"
+"build_nfvo_lcm_image" "get_vfc_images" "run_vfc_images"
)
# test_clone_all_vfc_repos() - Verify cloning and pulling source code from repositories
function test_clone_all_vfc_repos {
- # TODO(sshank)
- echo ""
+
+ # TODO(sshank): Add other asserts
+ asserts_file_exist $src_folder/nfvo/lcm/run.sh
+
}
# test_compile_all_vfc_repos() - Verify that all the VFC modules are compiled properly
@@ -21,11 +24,22 @@ function test_compile_all_vfc_repos {
# TODO(electrocucaracha): Add asserts_file_exist
}
+# test_get_vfc_images() - Verify all VFC images are built correctly.
+function test_get_vfc_images {
+ get_vfc_images
+
+ asserts_image nexus3.onap.org:10003/onap/vfc/nslcm
+
+ # TODO(sshank): Add asserts for other VFC component docker image builds when they are ready.
+}
+
# test_install_vfc() - Verify that the VFC are up and running
function test_install_vfc {
install_vfc
- # TODO(electrocucaracha): Add whatever asserts are needed
+ asserts_image_running vfc-nslcm
+
+ # TODO(sshank): Add asserts for other running VFC component docker images when they are ready.
}
if [ "$1" != '*' ]; then
diff --git a/documentation/api-dependencies/onapapidependencies.dot b/documentation/api-dependencies/onapapidependencies.dot
index 99efa941e..aa66b3c01 100644
--- a/documentation/api-dependencies/onapapidependencies.dot
+++ b/documentation/api-dependencies/onapapidependencies.dot
@@ -15,7 +15,7 @@
*/
/*
-Usage: dot -T png -O onapapidependecies.dot This cmd will generate a png graph dependency file.
+Usage: dot -T png -O onapapidependencies.dot This cmd will generate a png graph dependency file.
Graphiz is the open source tool used to generate the graph.
Graphiz is available and documented at http://www.graphviz.org
This text file represents the API dependencies between ONAP projects
@@ -61,6 +61,8 @@ aai -> msb;
appc -> aai; //https://wiki.onap.org/pages/viewpage.action?pageId=6593279#APPCM1ReleasePlanning(AmsterdamRelease)-APIIncomingDependencies
appc -> multicloud;
appc -> sdc;
+appc -> ccsdk;
+appc -> dmaap;
ccsdk -> aai; //https://wiki.onap.org/display/DW/Release+Planning+Template+%3A+CCSDK+Amsterdam+Release#ReleasePlanningTemplate:CCSDKAmsterdamRelease-APIIncomingDependencies
ccsdk -> sdc;
clamp -> dcaegen2; //https://wiki.onap.org/display/DW/CLAMP+Release+Planning+M1#CLAMPReleasePlanningM1-APIIncomingDependencies
@@ -72,7 +74,8 @@ cli -> msb;
dcaegen2 -> dmaap; //https://wiki.onap.org/display/DW/DCAE+R1+Release+Planning#DCAER1ReleasePlanning-APIIncomingDependencies
dcaegen2 -> multicloud;
dcaegen2 -> policy;
-dcaegen2 -> sdc;
+dcaegen2 -> sdc;
+dmaap -> aaf; //https://wiki.onap.org/display/DW/DMaaP+Amsterdam+M1+Release#DMaaPAmsterdamM1Release-APIIncomingDependencies
extapi -> so; //https://wiki.onap.org/pages/viewpage.action?pageId=8227006#ExternalAPIFrameworkM1ReleasePlanning(AmsterdamRelease)-APIIncomingDependencies
extapi -> sdc;
holmes -> aai; //https://wiki.onap.org/pages/viewpage.action?pageId=6593583#HolmesReleasePlanningforAmsterdam-APIIncomingDependencies
@@ -85,11 +88,13 @@ oom -> msb; //https://wiki.onap.org/display/DW/OOM+M1+Release+Planning+Templa
policy -> aai; //https://wiki.onap.org/display/DW/Policy+Framework+R1+-+M1+Release+Planning+Template#PolicyFrameworkR1-M1ReleasePlanningTemplate-APIIncomingDependencies
policy -> appc;
policy -> dcaegen2;
+policy -> dmaap;
policy -> vfc;
policy -> so;
portal -> aaf; //https://wiki.onap.org/pages/viewpage.action?pageId=8227559#PortalPlatformM1ReleasePlanning(AmsterdamRelease)-APIIncomingDependencies
sdnc -> aai; //https://wiki.onap.org/display/DW/Release+Planning+Template+%3A+SDNC+Amsterdam+Release#ReleasePlanningTemplate:SDNCAmsterdamRelease-APIIncomingDependencies
sdnc -> sdc;
+sdnc -> dmaap;
so -> aai; //https://wiki.onap.org/display/DW/Service+Orchestrator+Release+Planning#ServiceOrchestratorReleasePlanning-APIIncomingDependencies
so -> appc;
so -> multicloud;
diff --git a/pom.xml b/pom.xml
index c19d6991f..3e0aea311 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onap.oparent</groupId>
<artifactId>oparent</artifactId>
- <version>0.1.0</version>
+ <version>0.1.1</version>
</parent>
<name>integration</name>
<groupId>org.onap.integration</groupId>
diff --git a/test/csit/plans/cli/sanity-check/setup.sh b/test/csit/plans/cli/sanity-check/setup.sh
new file mode 100644
index 000000000..ca18f5176
--- /dev/null
+++ b/test/csit/plans/cli/sanity-check/setup.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+#
+# Copyright 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.
+#
+# Place the scripts in run order:
+source ${SCRIPTS}/common_functions.sh
+
+# Start auth
+docker run -d --name cli -e CLI_MODE=daemon nexus3.onap.org:10001/onap/cli:1.1-STAGING-latest
+
+# Wait for cli initialization
+echo Wait for CLI initialization
+for i in {1..40}; do
+ sleep 1
+done
+
+CLI_IP=`get-instance-ip.sh cli`
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v CLI_IP:${CLI_IP}"
diff --git a/test/csit/plans/cli/sanity-check/teardown.sh b/test/csit/plans/cli/sanity-check/teardown.sh
new file mode 100644
index 000000000..70fb6ff18
--- /dev/null
+++ b/test/csit/plans/cli/sanity-check/teardown.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+# Copyright 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 cli \ No newline at end of file
diff --git a/test/csit/plans/cli/sanity-check/testplan.txt b/test/csit/plans/cli/sanity-check/testplan.txt
new file mode 100644
index 000000000..477ddab17
--- /dev/null
+++ b/test/csit/plans/cli/sanity-check/testplan.txt
@@ -0,0 +1,18 @@
+#
+# Copyright 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.
+#
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+cli/startup/startup_check.robot
diff --git a/test/csit/plans/msb/rest-service/setup.sh b/test/csit/plans/msb/rest-service/setup.sh
new file mode 100644
index 000000000..18b17ff8f
--- /dev/null
+++ b/test/csit/plans/msb/rest-service/setup.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+#
+# Copyright 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 -e "ROUTE_LABELS=visualRange:1" --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}
+
+# Start rest example service
+sudo docker run -d -p 9090:9090 --name i-rest-example zhaohuabing/rest-example
+REST_EXAMPLE_IP=`get-instance-ip.sh i-rest-example`
+echo REST_EXAMPLE_IP=${REST_EXAMPLE_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
+
+#Need some time so service info can be synced from discovery to api gateway
+sleep 60
+
+curl -X POST \
+ -H "Content-Type: application/json" \
+ -d '{"serviceName": "test", "version": "v1", "url": "/","protocol": "REST", "lb_policy":"round-robin","nodes": [ {"ip": "'${REST_EXAMPLE_IP}'","port": "9090"}]}' \
+ "http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services"
+
+# Pass any variables required by Robot suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v MSB_DISCOVERY_IP:${MSB_DISCOVERY_IP} -v REST_EXAMPLE_IP:${REST_EXAMPLE_IP}" \ No newline at end of file
diff --git a/test/csit/plans/msb/rest-service/teardown.sh b/test/csit/plans/msb/rest-service/teardown.sh
new file mode 100644
index 000000000..b79456731
--- /dev/null
+++ b/test/csit/plans/msb/rest-service/teardown.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# Copyright 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
+kill-instance.sh i-rest-example
diff --git a/test/csit/plans/msb/rest-service/testplan.txt b/test/csit/plans/msb/rest-service/testplan.txt
new file mode 100644
index 000000000..54bb307bf
--- /dev/null
+++ b/test/csit/plans/msb/rest-service/testplan.txt
@@ -0,0 +1,4 @@
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+msb/rest-service-discovery
+msb/rest-service-api-gateway \ No newline at end of file
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..21bb18f7d
--- /dev/null
+++ b/test/csit/plans/msb/sanity-check/setup.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+#
+# Copyright 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
+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}
+
+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}
+
+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
+
+#wait for container initalization
+sleep 30
+
+#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..609eaf664
--- /dev/null
+++ b/test/csit/plans/msb/sanity-check/teardown.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Copyright 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/msb/tcp-service/setup.sh b/test/csit/plans/msb/tcp-service/setup.sh
new file mode 100644
index 000000000..1a315e516
--- /dev/null
+++ b/test/csit/plans/msb/tcp-service/setup.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+#
+# Copyright 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
+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}
+
+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}
+
+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}
+
+# Start Message Broker
+docker run -d -p 61616:61616 --name i-activemq webcenter/activemq
+
+ACTIVEMQ_IP=`get-instance-ip.sh i-activemq`
+echo ACTIVEMQ_IP=${ACTIVEMQ_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
+
+#wait for container initalization
+sleep 30
+
+curl -H "Content-Type: application/json" -X POST -d '{"serviceName": "ActiveMQ","protocol": "TCP","nodes": [{"ip": "'${ACTIVEMQ_IP}'","port": "61616"}]}' http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services
+
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v MSB_DISCOVERY_IP:${MSB_DISCOVERY_IP} -v ACTIVEMQ_IP:${ACTIVEMQ_IP}" \ No newline at end of file
diff --git a/test/csit/plans/msb/tcp-service/teardown.sh b/test/csit/plans/msb/tcp-service/teardown.sh
new file mode 100644
index 000000000..36ee889f3
--- /dev/null
+++ b/test/csit/plans/msb/tcp-service/teardown.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# Copyright 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
+kill-instance.sh i-activemq
diff --git a/test/csit/plans/msb/tcp-service/testplan.txt b/test/csit/plans/msb/tcp-service/testplan.txt
new file mode 100644
index 000000000..ba8f6f282
--- /dev/null
+++ b/test/csit/plans/msb/tcp-service/testplan.txt
@@ -0,0 +1,4 @@
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+msb/tcp-service-discovery
+msb/tcp-service-access \ No newline at end of file
diff --git a/test/csit/plans/vfc-gvnfm-vnflcm/sanity-check/setup.sh b/test/csit/plans/vfc-gvnfm-vnflcm/sanity-check/setup.sh
new file mode 100755
index 000000000..d41658612
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnflcm/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-vnflcm
+docker run -d --name vfc-vnflcm -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/vnflcm
+VNFLCM_IP=`get-instance-ip.sh vfc-vnflcm`
+for i in {1..10}; do
+ curl -sS ${VNFLCM_IP}:8801 && 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 VNFLCM_IP:${VNFLCM_IP}"
diff --git a/test/csit/plans/vfc-gvnfm-vnflcm/sanity-check/teardown.sh b/test/csit/plans/vfc-gvnfm-vnflcm/sanity-check/teardown.sh
new file mode 100755
index 000000000..f78acd37c
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnflcm/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-vnflcm
diff --git a/test/csit/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt b/test/csit/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt
new file mode 100644
index 000000000..0aa2e3e21
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnflcm/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/gvnfm-vnflcm/test.robot
diff --git a/test/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh b/test/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh
new file mode 100755
index 000000000..ec315a24b
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnfmgr/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-vnfmgr
+docker run -d --name vfc-vnfmgr -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/vnfmgr
+VNFMGR_IP=`get-instance-ip.sh vfc-vnfmgr`
+for i in {1..10}; do
+ curl -sS ${VNFMGR_IP}:8803 && 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 VNFMGR_IP:${VNFMGR_IP}"
diff --git a/test/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh b/test/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh
new file mode 100755
index 000000000..572c2f336
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnfmgr/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-vnfmgr
diff --git a/test/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt b/test/csit/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt
new file mode 100644
index 000000000..960f7325a
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnfmgr/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/gvnfm-vnfmgr/test.robot
diff --git a/test/csit/plans/vfc-gvnfm-vnfres/sanity-check/setup.sh b/test/csit/plans/vfc-gvnfm-vnfres/sanity-check/setup.sh
new file mode 100755
index 000000000..3453f9ec3
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnfres/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-vnfres
+docker run -d --name vfc-vnfres -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/vnfres
+VNFRES_IP=`get-instance-ip.sh vfc-vnfres`
+for i in {1..10}; do
+ curl -sS ${VNFRES_IP}:8803 && 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 VNFRES_IP:${VNFRES_IP}"
diff --git a/test/csit/plans/vfc-gvnfm-vnfres/sanity-check/teardown.sh b/test/csit/plans/vfc-gvnfm-vnfres/sanity-check/teardown.sh
new file mode 100755
index 000000000..edd857da6
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnfres/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-vnfres
diff --git a/test/csit/plans/vfc-gvnfm-vnfres/sanity-check/testplan.txt b/test/csit/plans/vfc-gvnfm-vnfres/sanity-check/testplan.txt
new file mode 100644
index 000000000..e94e29460
--- /dev/null
+++ b/test/csit/plans/vfc-gvnfm-vnfres/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/gvnfm-vnfres/test.robot
diff --git a/test/csit/plans/vfc-nfvo-catalog/sanity-check/setup.sh b/test/csit/plans/vfc-nfvo-catalog/sanity-check/setup.sh
new file mode 100644
index 000000000..524a4d866
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-catalog/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-catalog
+docker run -d --name vfc-catalog -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/catalog
+CATALOG_IP=`get-instance-ip.sh vfc-catalog`
+for i in {1..10}; do
+ curl -sS ${CATALOG_IP}:8806 && 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 CATALOG_IP:${CATALOG_IP}"
diff --git a/test/csit/plans/vfc-nfvo-catalog/sanity-check/teardown.sh b/test/csit/plans/vfc-nfvo-catalog/sanity-check/teardown.sh
new file mode 100644
index 000000000..68d5b60e4
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-catalog/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-catalog
diff --git a/test/csit/plans/vfc-nfvo-catalog/sanity-check/testplan.txt b/test/csit/plans/vfc-nfvo-catalog/sanity-check/testplan.txt
new file mode 100644
index 000000000..6c8c54a94
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-catalog/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-catalog/test.robot
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..42a7f901e
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-lcm/sanity-check/setup.sh
@@ -0,0 +1,58 @@
+#!/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
+
+source ${SCRIPTS}/common_functions.sh
+
+#start msb
+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}
+
+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}
+
+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
+
+# wait for container initalization
+echo sleep 30
+sleep 30
+
+# start vfc-nslcm
+docker run -d --name vfc-nslcm -v /var/lib/mysql -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/vfc/nslcm
+NSLCM_IP=`get-instance-ip.sh vfc-nslcm`
+
+# Wait for initialization
+for i in {1..10}; do
+ curl -sS -m 1 ${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_IAG_IP:${MSB_IAG_IP} -v MSB_DISCOVERY_IP:${MSB_DISCOVERY_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/plans/vfc-nfvo-resmanagement/sanity-check/setup.sh b/test/csit/plans/vfc-nfvo-resmanagement/sanity-check/setup.sh
new file mode 100644
index 000000000..a18562eb7
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-resmanagement/sanity-check/setup.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+#
+# Copyright 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.
+#
+# 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 resmgr
+docker run -d --name vfc-resmanagement -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/resmanagement
+RESMGR_IP=`get-instance-ip.sh vfc-resmanagement`
+for i in {1..10}; do
+ curl -sS ${RESMGR_IP}:8480 && 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 RESMGR_IP:${RESMGR_IP}"
diff --git a/test/csit/plans/vfc-nfvo-resmanagement/sanity-check/teardown.sh b/test/csit/plans/vfc-nfvo-resmanagement/sanity-check/teardown.sh
new file mode 100644
index 000000000..2ad95c6bf
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-resmanagement/sanity-check/teardown.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+#
+# Copyright 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.
+#
+
+# 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-resmanagement
diff --git a/test/csit/plans/vfc-nfvo-resmanagement/sanity-check/testplan.txt b/test/csit/plans/vfc-nfvo-resmanagement/sanity-check/testplan.txt
new file mode 100644
index 000000000..98dac63b6
--- /dev/null
+++ b/test/csit/plans/vfc-nfvo-resmanagement/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-resmanagement/test.robot \ No newline at end of file
diff --git a/test/csit/plans/vnfsdk-refrepo/sanity-check/setup.sh b/test/csit/plans/vnfsdk-refrepo/sanity-check/setup.sh
index b54ea56ad..91e931e91 100644
--- a/test/csit/plans/vnfsdk-refrepo/sanity-check/setup.sh
+++ b/test/csit/plans/vnfsdk-refrepo/sanity-check/setup.sh
@@ -21,10 +21,16 @@
#Start market place
docker run -d -i -t --name=refrepo -p 8702:8702 nexus3.onap.org:10001/onap/refrepo:1.0-STAGING-latest
+# Wait for Market place initialization
+echo Wait for VNF Repository initialization
+for i in {1..30}; do
+ sleep 1
+done
+
REPO_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' refrepo`
# Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v SCRIPTS:{SCRIPTS} -v REPO_IP:${REPO_IP}"
+ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS} -v REPO_IP:${REPO_IP}"
echo ${ROBOT_VARIABLES}
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/cli/startup.sh b/test/csit/scripts/cli/startup.sh
new file mode 100644
index 000000000..6e29a0e8e
--- /dev/null
+++ b/test/csit/scripts/cli/startup.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright 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.
+#
+# $1 nickname for the MSB instance
+echo "This is ${WORKSPACE}/test/csit/scripts/cli/startup.sh"
diff --git a/test/csit/tests/clamp/TCA/test1.robot b/test/csit/tests/clamp/TCA/01__TCA.robot
index b1fb0f440..45f20f248 100644
--- a/test/csit/tests/clamp/TCA/test1.robot
+++ b/test/csit/tests/clamp/TCA/01__TCA.robot
@@ -3,7 +3,6 @@ Library Collections
Library RequestsLibrary
Library OperatingSystem
Library json
-Library HttpLibrary.HTTP
*** Test Cases ***
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/01__Create_template.robot b/test/csit/tests/clamp/UIs/01__Create_template.robot
new file mode 100644
index 000000000..d740ac987
--- /dev/null
+++ b/test/csit/tests/clamp/UIs/01__Create_template.robot
@@ -0,0 +1,81 @@
+*** Settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+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=template
+ Click Button locator=OK
+
+Drag and Drop Boxes for template
+ Wait Until Element Is Visible xpath=//*[@class="entry icon-collector-node"] timeout=60
+ Drag And Drop By Offset xpath=//*[@class="entry icon-collector-node"] 280 280
+ Drag And Drop By Offset xpath=//*[@class="entry icon-tca-node"] 550 280
+ Drag And Drop By Offset xpath=//*[@class="entry icon-policy-node"] 800 280
+ Drag And Drop By Offset xpath=//*[@class="entry icon-end-event-none"] 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/02__Create_model.robot
index fafb00042..979a9802e 100644
--- a/test/csit/tests/clamp/UIs/test1.robot
+++ b/test/csit/tests/clamp/UIs/02__Create_model.robot
@@ -3,7 +3,6 @@ Library Collections
Library RequestsLibrary
Library OperatingSystem
Library json
-Library HttpLibrary.HTTP
Library Selenium2Library
Library XvfbRobot
@@ -18,17 +17,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 +29,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/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/cli/startup/__init__.robot b/test/csit/tests/cli/startup/__init__.robot
new file mode 100644
index 000000000..9eca6917a
--- /dev/null
+++ b/test/csit/tests/cli/startup/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation cli - Startup
diff --git a/test/csit/tests/cli/startup/startup_check.robot b/test/csit/tests/cli/startup/startup_check.robot
new file mode 100644
index 000000000..c79da34ba
--- /dev/null
+++ b/test/csit/tests/cli/startup/startup_check.robot
@@ -0,0 +1,16 @@
+*** Settings ***
+Library RequestsLibrary
+
+*** Test Cases ***
+Liveness Test
+ [Documentation] Check cli liveness check
+ Create Session cli http://${CLI_IP}:8080
+ CheckUrl cli /
+
+*** 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/msb/rest-service-api-gateway/__init__.robot b/test/csit/tests/msb/rest-service-api-gateway/__init__.robot
new file mode 100644
index 000000000..efd2221f2
--- /dev/null
+++ b/test/csit/tests/msb/rest-service-api-gateway/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation Microservices Service Bus - Messag Broker
diff --git a/test/csit/tests/msb/rest-service-api-gateway/test1.robot b/test/csit/tests/msb/rest-service-api-gateway/test1.robot
new file mode 100644
index 000000000..8a15bf2be
--- /dev/null
+++ b/test/csit/tests/msb/rest-service-api-gateway/test1.robot
@@ -0,0 +1,9 @@
+*** Settings ***
+Library Collections
+Library requests
+
+*** Test Cases ***
+REST service Test1
+ [Documentation] Check if test rest service can be accessed via aip gateway
+ ${result} = get http://${MSB_IAG_IP}/api/test/v1/people
+ Should Be Equal ${result.status_code} ${200}
diff --git a/test/csit/tests/msb/rest-service-discovery/__init__.robot b/test/csit/tests/msb/rest-service-discovery/__init__.robot
new file mode 100644
index 000000000..efd2221f2
--- /dev/null
+++ b/test/csit/tests/msb/rest-service-discovery/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation Microservices Service Bus - Messag Broker
diff --git a/test/csit/tests/msb/rest-service-discovery/test1.robot b/test/csit/tests/msb/rest-service-discovery/test1.robot
new file mode 100644
index 000000000..bb48d3fdc
--- /dev/null
+++ b/test/csit/tests/msb/rest-service-discovery/test1.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Library Collections
+Library requests
+
+*** Test Cases ***
+Messag Broker Test
+ [Documentation] Check if the test service enpoint can be get from MSB
+ ${result} = get http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services/test/version/v1
+ Should Be Equal ${result.status_code} ${200}
+ ${json} = Set Variable ${result.json()}
+ ${serviceName} = Get From Dictionary ${json} serviceName
+ ${protocol} = Get From Dictionary ${json} protocol
+ Should Be Equal ${serviceName} test
+ Should Be Equal ${protocol} REST \ No newline at end of file
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/msb/tcp-service-access/__init__.robot b/test/csit/tests/msb/tcp-service-access/__init__.robot
new file mode 100644
index 000000000..efd2221f2
--- /dev/null
+++ b/test/csit/tests/msb/tcp-service-access/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation Microservices Service Bus - Messag Broker
diff --git a/test/csit/tests/msb/tcp-service-access/test1.robot b/test/csit/tests/msb/tcp-service-access/test1.robot
new file mode 100644
index 000000000..e84c7e1a3
--- /dev/null
+++ b/test/csit/tests/msb/tcp-service-access/test1.robot
@@ -0,0 +1,16 @@
+*** Settings ***
+Library Collections
+Library requests
+
+*** Test Cases ***
+Messag Broker Test1
+ [Documentation] Check if ActiveMQ index page can be accessed
+ ${result} = get http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services/ActiveMQ/version/null
+ Should Be Equal ${result.status_code} ${200}
+ ${json} = Set Variable ${result.json()}
+ ${activeMQ_ip} = Set Variable ${json["nodes"][0]["ip"]}
+ ${activeMQ_port} = Set Variable ${json["nodes"][0]["port"]}
+
+ ${result} = get http://${activeMQ_ip}:8161
+ Should Be Equal ${result.status_code} ${200}
+
diff --git a/test/csit/tests/msb/tcp-service-access/test2.robot b/test/csit/tests/msb/tcp-service-access/test2.robot
new file mode 100644
index 000000000..58e5471b7
--- /dev/null
+++ b/test/csit/tests/msb/tcp-service-access/test2.robot
@@ -0,0 +1,15 @@
+*** Settings ***
+Library Collections
+Library requests
+Library Telnet
+
+*** Test Cases ***
+Messag Broker Test2
+ [Documentation] Check if ActiveMQ listening port can be accessed
+ ${result} = get http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services/ActiveMQ/version/null
+ Should Be Equal ${result.status_code} ${200}
+ ${json} = Set Variable ${result.json()}
+ ${activeMQ_ip} = Set Variable ${json["nodes"][0]["ip"]}
+ ${activeMQ_port} = Set Variable ${json["nodes"][0]["port"]}
+
+ Open Connection ${activeMQ_ip} port=${activeMQ_port}
diff --git a/test/csit/tests/msb/tcp-service-discovery/__init__.robot b/test/csit/tests/msb/tcp-service-discovery/__init__.robot
new file mode 100644
index 000000000..efd2221f2
--- /dev/null
+++ b/test/csit/tests/msb/tcp-service-discovery/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation Microservices Service Bus - Messag Broker
diff --git a/test/csit/tests/msb/tcp-service-discovery/test1.robot b/test/csit/tests/msb/tcp-service-discovery/test1.robot
new file mode 100644
index 000000000..da6cb3efa
--- /dev/null
+++ b/test/csit/tests/msb/tcp-service-discovery/test1.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Library Collections
+Library requests
+
+*** Test Cases ***
+Messag Broker Test
+ [Documentation] Check if the message broker enpoint can be get from MSB
+ ${result} = get http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services/ActiveMQ/version/null
+ Should Be Equal ${result.status_code} ${200}
+ ${json} = Set Variable ${result.json()}
+ ${serviceName} = Get From Dictionary ${json} serviceName
+ ${protocol} = Get From Dictionary ${json} protocol
+ Should Be Equal ${serviceName} ActiveMQ
+ Should Be Equal ${protocol} TCP \ No newline at end of file
diff --git a/test/csit/tests/vfc/gvnfm-vnflcm/test.robot b/test/csit/tests/vfc/gvnfm-vnflcm/test.robot
new file mode 100644
index 000000000..817be51bd
--- /dev/null
+++ b/test/csit/tests/vfc/gvnfm-vnflcm/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/vnflcm/v1/swagger.json
+
+*** Test Cases ***
+NslcmSwaggerTest
+ [Documentation] query nslcm swagger info rest test
+ Should Be Equal 2.0 2.0
diff --git a/test/csit/tests/vfc/gvnfm-vnfmgr/test.robot b/test/csit/tests/vfc/gvnfm-vnfmgr/test.robot
new file mode 100644
index 000000000..90392c982
--- /dev/null
+++ b/test/csit/tests/vfc/gvnfm-vnfmgr/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/vnfmgr/v1/swagger.json
+
+*** Test Cases ***
+NslcmSwaggerTest
+ [Documentation] query vnfmgr swagger info rest test
+ Should Be Equal 2.0 2.0
diff --git a/test/csit/tests/vfc/gvnfm-vnfres/test.robot b/test/csit/tests/vfc/gvnfm-vnfres/test.robot
new file mode 100644
index 000000000..21ae45996
--- /dev/null
+++ b/test/csit/tests/vfc/gvnfm-vnfres/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/vnfres/v1/swagger.json
+
+*** Test Cases ***
+NslcmSwaggerTest
+ [Documentation] query vnfres swagger info rest test
+ Should Be Equal 2.0 2.0
diff --git a/test/csit/tests/vfc/nfvo-catalog/test.robot b/test/csit/tests/vfc/nfvo-catalog/test.robot
new file mode 100644
index 000000000..a23128c90
--- /dev/null
+++ b/test/csit/tests/vfc/nfvo-catalog/test.robot
@@ -0,0 +1,19 @@
+*** settings ***
+Library Collections
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+
+*** Variables ***
+@{return_ok_list}= 200 201 202
+${queryswagger_url} /api/catalog/v1/swagger.json
+${queryVNFPackage_url} /api/catalog/v1/vnfpackages
+${queryNSPackages_url} /api/catalog/v1/nspackages
+
+*** Test Cases ***
+GetVNFPackages
+ ${headers} Create Dictionary Content-Type=application/json Accept=application/json
+ Create Session web_session http://${CATALOG_IP} headers=${headers}
+ ${resp}= Get Request web_session ${queryVNFPackage_url}
+ ${responese_code}= Convert To String ${resp.status_code}
+ List Should Contain Value ${return_ok_list} ${responese_code}
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..d0a5b7cd7
--- /dev/null
+++ b/test/csit/tests/vfc/nfvo-lcm/test.robot
@@ -0,0 +1,21 @@
+*** 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 swagger info nslcm
+ ${headers} Create Dictionary Content-Type=application/json Accept=application/json
+ Create Session web_session http://${MSB_IAG_IP}:80 headers=${headers}
+ ${resp}= Get Request web_session ${queryswagger_url}
+ ${responese_code}= Convert To String ${resp.status_code}
+ List Should Contain Value ${return_ok_list} ${responese_code}
+ ${response_json} json.loads ${resp.content}
+ ${swagger_version}= Convert To String ${response_json['swagger']}
+ Should Be Equal ${swagger_version} 2.0
diff --git a/test/csit/tests/vfc/nfvo-resmanagement/test.robot b/test/csit/tests/vfc/nfvo-resmanagement/test.robot
new file mode 100644
index 000000000..996cf5845
--- /dev/null
+++ b/test/csit/tests/vfc/nfvo-resmanagement/test.robot
@@ -0,0 +1,16 @@
+*** settings ***
+Library Collections
+Library RequestsLibrary
+Library simplejson
+Library OperatingSystem
+Library json
+Library HttpLibrary.HTTP
+
+*** Variables ***
+@{return_ok_list}= 200 201 202
+${queryswagger_url} /api/resmgr/v1/swagger.json
+
+*** Test Cases ***
+SwaggerFuncTest
+ [Documentation] query swagger info rest test
+ Should Be Equal 2.0 2.0
diff --git a/test/csit/tests/vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot b/test/csit/tests/vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot
index 473415eab..b06d5b544 100644
--- a/test/csit/tests/vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot
+++ b/test/csit/tests/vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot
@@ -1,17 +1,40 @@
*** settings ***
Library OperatingSystem
Library Process
+Library String
+Library Collections
+Library RequestsLibrary
+Library json
*** Variables ***
-${csarpath} ${SCRIPTS}/../tests/vnfsdk-marketplace/provision/enterprise2DC.csar
-${upload} ${SCRIPTS}/../tests/vnfsdk-marketplace/provision/uploadCSAR.sh
-
+${csarpath} ${SCRIPTS}/../tests/vnfsdk-marketplace/provision/enterprise2DC.csar
+${csarId} 0
*** Test Cases ***
-
-E2E Test case for VNF SDK
+
+Upload VNF Package to VNF Repository
[Documentation] Upload the VNF Package
- ${status}= Run Process bash ${upload} ${REPO_IP} ${csarpath} > log.txt shell=yes
- Log Status is ${status}
+ ${resp}= Run curl -s -X POST -H "Content-Type: multipart/form-data" -F "file=@${csarpath}" http://${REPO_IP}:8702/openoapi/vnfsdk-marketplace/v1/PackageResource/csars
+ Should Contain ${resp} csarId
+ ${csarjson}= Evaluate ${resp}
+ ${csarId}= Set Variable ${csarjson["csarId"]}
+ Set Global Variable ${csarId}
+
+Get VNF Package Information from Repository
+ Create Session refrepo http://${REPO_IP}:8702
+ &{headers}= Create Dictionary Content-Type=application/json
+ ${resp}= Get Request refrepo /openoapi/vnfsdk-marketplace/v1/PackageResource/csars/${csarId} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+Download VNF Package from Repository
+ Create Session refrepo http://${REPO_IP}:8702
+ &{headers}= Create Dictionary Content-Type=application/json
+ ${resp}= Get Request refrepo /openoapi/vnfsdk-marketplace/v1/PackageResource/csars/${csarId}/files headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200
+Delete VNF Package from Repository
+ Create Session refrepo http://${REPO_IP}:8702
+ &{headers}= Create Dictionary Content-Type=application/json
+ ${resp}= Delete Request refrepo /openoapi/vnfsdk-marketplace/v1/PackageResource/csars/${csarId} headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200
diff --git a/version-manifest/pom.xml b/version-manifest/pom.xml
index 5d3f56983..331f357ad 100644
--- a/version-manifest/pom.xml
+++ b/version-manifest/pom.xml
@@ -48,7 +48,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
- <version>3.2</version>
+ <version>3.4</version>
<configuration>
<goalPrefix>version-manifest</goalPrefix>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
@@ -68,6 +68,23 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>pl.project13.maven</groupId>
+ <artifactId>git-commit-id-plugin</artifactId>
+ <version>2.2.3</version>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>revision</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
+ <generateGitPropertiesFile>true</generateGitPropertiesFile>
+ </configuration>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/version-manifest/src/main/java/org/onap/integration/versionmanifest/VersionCheckMojo.java b/version-manifest/src/main/java/org/onap/integration/versionmanifest/VersionCheckMojo.java
index b26c1cdac..d6e5d4ca6 100644
--- a/version-manifest/src/main/java/org/onap/integration/versionmanifest/VersionCheckMojo.java
+++ b/version-manifest/src/main/java/org/onap/integration/versionmanifest/VersionCheckMojo.java
@@ -17,18 +17,22 @@
package org.onap.integration.versionmanifest;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Properties;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVRecord;
-import org.apache.maven.model.Dependency;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.logging.Log;
@@ -57,9 +61,22 @@ public class VersionCheckMojo extends AbstractMojo {
public void execute() throws MojoExecutionException {
final Log log = getLog();
- log.info("Checking version manifest " + manifest);
+ final Properties gitProps = new Properties();
+ try (InputStream in = getClass().getResourceAsStream("/git.properties")) {
+ gitProps.load(in);
+ } catch (IOException e) {
+ log.error(e);
+ throw new MojoExecutionException(e.getMessage());
+ }
+
+ log.info("Manifest version: " + gitProps.getProperty("git.build.time") + " "
+ + gitProps.getProperty("git.commit.id") + " " + gitProps.getProperty("git.remote.origin.url"));
- Map<String, String> expectedVersions = new HashMap<>();
+ log.info("");
+
+ final List<String> groupIdPrefixes = Arrays.asList("org.onap", "org.openecomp", "org.openo");
+
+ final Map<String, String> expectedVersions = new HashMap<>();
try (InputStreamReader in = new InputStreamReader(getClass().getResourceAsStream(manifest),
StandardCharsets.ISO_8859_1)) {
@@ -79,30 +96,49 @@ public class VersionCheckMojo extends AbstractMojo {
throw new MojoExecutionException(e.getMessage());
}
- Map<String, String> actualVersions = new HashMap<>();
- MavenProject parent = project.getParent();
+ final Map<String, String> actualVersions = new HashMap<>();
+ final MavenProject parent = project.getParent();
if (parent != null) {
log.debug("Parent: " + parent);
- actualVersions.put(parent.getGroupId() + ":" + parent.getArtifactId(), parent.getVersion());
+ // don't warn within the same groupId
+ if (!project.getGroupId().equals(parent.getGroupId())) {
+ actualVersions.put(parent.getGroupId() + ":" + parent.getArtifactId(), parent.getVersion());
+ }
} else {
log.debug("No parent");
}
- for (Dependency dep : project.getDependencies()) {
- log.debug("Dependency: " + dep.toString());
- actualVersions.put(dep.getGroupId() + ":" + dep.getArtifactId(), dep.getVersion());
+ for (Artifact dep : project.getDependencyArtifacts()) {
+ log.debug("DependencyArtifact: " + dep.toString());
+ // don't warn within the same groupId
+ if (!project.getGroupId().equals(dep.getGroupId())) {
+ actualVersions.put(dep.getGroupId() + ":" + dep.getArtifactId(), dep.getVersion());
+ }
}
- Set<String> mismatches = new TreeSet<>();
- for (Entry<String, String> expected : expectedVersions.entrySet()) {
- String artifact = expected.getKey();
+ final Set<String> mismatches = new TreeSet<>();
+ final Set<String> missingArtifacts = new TreeSet<>();
+
+ for (Entry<String, String> actualVersionEntry : actualVersions.entrySet()) {
+ String artifact = actualVersionEntry.getKey();
+ String actualVersion = actualVersionEntry.getValue();
String expectedVersion = expectedVersions.get(artifact);
- String actualVersion = actualVersions.get(artifact);
- if (actualVersion != null && !actualVersion.equals(expectedVersion)) {
+ if (expectedVersion == null) {
+ if (groupIdPrefixes.stream().anyMatch(prefix -> artifact.startsWith(prefix))) {
+ missingArtifacts.add(artifact);
+ }
+ } else if (!expectedVersion.equals(actualVersion)) {
mismatches.add(artifact);
}
}
+ // used for formatting
+ int[] columnWidths = new int[10];
+ columnWidths[0] = actualVersions.keySet().stream().mapToInt(String::length).max().orElse(1);
+ columnWidths[1] = actualVersions.values().stream().mapToInt(String::length).max().orElse(1);
+ columnWidths[2] = expectedVersions.values().stream().mapToInt(String::length).max().orElse(1);
+ String format = " %-" + columnWidths[0] + "s" + " %" + columnWidths[1] + "s -> %" + columnWidths[2] + "s";
+
if (mismatches.isEmpty()) {
log.debug("No version mismatches found");
} else {
@@ -110,10 +146,23 @@ public class VersionCheckMojo extends AbstractMojo {
for (String artifact : mismatches) {
String expectedVersion = expectedVersions.get(artifact);
String actualVersion = actualVersions.get(artifact);
+
if (actualVersion != null && !actualVersion.equals(expectedVersion)) {
- log.warn(" " + artifact + " " + actualVersion + " -> " + expectedVersion);
+ log.warn(String.format(format, artifact, actualVersion, expectedVersion));
}
}
+ log.warn("");
+ }
+
+ if (missingArtifacts.isEmpty()) {
+ log.debug("No artifacts found missing in the version manifest");
+ } else {
+ log.warn("The following dependencies are missing in the version manifest:");
+ for (String artifact : missingArtifacts) {
+ String actualVersion = actualVersions.get(artifact);
+ log.warn(String.format(format, artifact, actualVersion, "?"));
+ }
+ log.warn("");
}
}
diff --git a/version-manifest/src/main/resources/java-manifest.csv b/version-manifest/src/main/resources/java-manifest.csv
index 8baa86884..f6bb6ec29 100644
--- a/version-manifest/src/main/resources/java-manifest.csv
+++ b/version-manifest/src/main/resources/java-manifest.csv
@@ -1,2 +1,2 @@
groupId,artifactId,version
-org.onap.oparent,oparent,0.1.0
+org.onap.oparent,oparent,0.1.1