aboutsummaryrefslogtreecommitdiffstats
path: root/test-apis-ci/src/test/resources/CI/tests
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-06-11 14:22:02 +0300
committerMichael Lando <ml636r@att.com>2017-06-11 17:48:32 +0300
commitb3d4898d9e8452ea0b8d848c048e712d43b8d9a3 (patch)
tree0609319203be13f6c29ccbe24cb39c9d64f90095 /test-apis-ci/src/test/resources/CI/tests
parentaf9929df75604ce407d0ca542b200630164e0ae6 (diff)
[SDC-29] rebase continue work to align source
Change-Id: I218f1c5ee23fb2c8314f1c70921d3ad8682c10f4 Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'test-apis-ci/src/test/resources/CI/tests')
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/addYangXmlArtifactToResource.xml32
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.yaml787
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.zipbin0 -> 2420 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat_net 0 2.yaml787
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatEnvfile.env787
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatInvalidFormat.yaml9
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heat_mini.yaml13
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidJson.json11
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYamlFormat.yaml787
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYangXml.xml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/jsonArtifact.json22
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/other.txt3
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/bluePrintSampleArtifact.xml3
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/docSampleArtifact.docxbin0 -> 11307 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.emf2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.xml3
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/eventSampleArtifact.xml3
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/jsonSampleArtifact.json3
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/toscaSampleArtifact.yml5
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/addHeatArtifactToServiceAndSertify/asc_heat 0 2.yaml787
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/downloadResourceArtifactSuccess/org.openstack.Rally.zipbin0 -> 11590 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt2
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDefault.yaml603
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDesc.yaml603
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingType.yaml603
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithValidParams.yaml787
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_1.yaml144
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_2.yaml469
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/heatEnv/yuli.yaml144
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/BindingAsset.yml14
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap.yml9
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap_DerivedFromMyCompute1.yml9
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPWithAttributes.yml56
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_1.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_2.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_1.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_2.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromCPWithOwnReq.yml14
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromWebApplication_HasNoReqType.yml27
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentCapFromRoot.yml26
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqAndCap.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute1.yml22
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute2.yml25
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqFromCompute.yml32
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/FatherHasNoReqCap.yml9
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure01.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure02.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure03.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure04.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure05.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure06.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure07.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure08.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure09.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure10.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure11.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure12.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure13.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure14.yml18
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure15.yml19
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure16.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure01.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure02.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure03.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure04.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure05.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure06.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure07.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure08.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure09.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure10.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure11.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure12.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure13.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure14.yml18
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure15.yml19
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure16.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MyFatherCompute_NoReqCap.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameCapAsCompute.yml26
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute.yml23
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute_DerivedFromMyCompute1.yml23
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap11.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap1UNBOUNDED.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromMyCompute.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromWebAppDerivedReqCap.yml15
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importAttributeSuccessFlow.yml53
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importCapabilityNameExistsOnParent.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateCapability.yml42
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateRequirements.yml40
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyBadDefault.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyGoodDefault.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertySuccessFlow.yml198
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importMapPropertySuccessFlow.yml452
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent_DerivedFromMyCompute1.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInCapDefinition.yml37
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInReqDefinition.yml25
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildCompute_NoReqCap.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildWebApp_DerivedFromContainer.yml15
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myCompute.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeDerivedFromNotExists.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectDefenitionVersionValue.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectNameSpaceFormat.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeNoDefenitionVersion.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeOccurencySuccess.yml77
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeParssingFalure.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeReqNameExistsOnDerived.yml34
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeVF.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithNodeTypesTwice.yml42
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithTopologyTemplate.yml44
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myFatherWebApp_derviedFromDocker.yml16
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myLinkVL.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myPortCP.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/noContent.yml0
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure01.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure02.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure03.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure04.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure05.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure06.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure07.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure08.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure09.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure10.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure11.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure31.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure32.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure33.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure34.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure35.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure36.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure37.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure38.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure39.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure40.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure41.yml35
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq11.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq12.yml17
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topology.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topologyTemplate.txt1
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool10_false.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool11_false.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool12_false.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool1_true.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool2_true.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool3_true.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool4_true.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool5_true.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool6_true.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool7_false.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool8_false.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool9_false.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number1.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number2.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.pngbin0 -> 63119 bytes
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml85
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh28
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh105
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/artifact_unsupported.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool1.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool2.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number1.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number2.yaml140
-rw-r--r--test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_string1.yaml140
220 files changed, 16543 insertions, 0 deletions
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/addYangXmlArtifactToResource.xml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/addYangXmlArtifactToResource.xml
new file mode 100644
index 0000000000..0415385bd0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/addYangXmlArtifactToResource.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<data>
+ <sports>
+ <person>
+ <name>Lionel Andres Messi</name>
+ <birthday>1987-06-24T00:00:00-00:00</birthday>
+ </person>
+ <person>
+ <name>Cristiano Ronaldo</name>
+ <birthday>1985-02-05T00:00:00-00:00</birthday>
+ </person>
+ <team>
+ <name>FC Barcelona</name>
+ <player>
+ <name>Lionel Andres Messi</name>
+ <season>Champions League 2014-2015</season>
+ <number>10</number>
+ <scores>43</scores>
+ </player>
+ </team>
+ <team>
+ <name>Real Madrid</name>
+ <player>
+ <name>Cristiano Ronaldo</name>
+ <season>Champions League 2014-2015</season>
+ <number>7</number>
+ <scores>48</scores>
+ </player>
+ </team>
+ </sports>
+
+</data> \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.yaml
new file mode 100644
index 0000000000..6835485ca1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance
+ default: This_is_ths_SCP_id
+
+ flavor_scp_be_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_scp_fe_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_smp_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_db_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ image_scp_be_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_be
+ image_scp_fe_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_fe
+ image_smp_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_smp
+ image_db_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_db
+
+ int_vscp_fe_cluster_net_id:
+ type: string
+ description: LAN2 FE Cluster/KA
+ int_vscp_fe_cluster_cidr:
+ type: string
+ description: Private Network2 Address (CIDR notation)
+ int_vscp_cluster_net_id:
+ type: string
+ description: LAN3 Cluster
+ int_vscp_cluster_cidr:
+ type: string
+ description: Private Network3 Address (CIDR notation)
+ int_vscp_db_network_net_id:
+ type: string
+ description: LAN4 DB
+ int_vscp_db_network_cidr:
+ type: string
+ description: Private Network4 Address (CIDR notation)
+ SIGNET_vrf_A1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_A
+ SIGNET_vrf_B1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_B
+ Cricket_OCS_protected_net_id:
+ type: string
+ description: Network name for CRICKET_OCS
+ OAM_direct_net_id:
+ type: string
+ description: Network name for OAM
+ be0_Cricket_OCS_protected_ips:
+ type: string
+ label: be0 port 5 OAM ip address
+ description: be0 port 5 OAM ip address
+ be1_Cricket_OCS_protected_ips:
+ type: string
+ label: be1 port 5 OAM ip address
+ description: be1 port 5 OAM ip address
+ be2_Cricket_OCS_protected_ips:
+ type: string
+ label: be2 port 5 OAM ip address
+ description: be2 port 5 OAM ip address
+ be3_Cricket_OCS_protected_ips:
+ type: string
+ label: be3 port 5 OAM ip address
+ description: be3 port 5 OAM ip address
+ be4_Cricket_OCS_protected_ips:
+ type: string
+ label: be4 port 5 OAM ip address
+ description: be4 port 5 OAM ip address
+ be0_OAM_direct_ips:
+ type: string
+ label: be0 port 7 OAM ip address
+ description: be0 port 7 OAM ip address
+ be1_OAM_direct_ips:
+ type: string
+ label: be1 port 7 OAM ip address
+ description: be1 port 7 OAM ip address
+ be2_OAM_direct_ips:
+ type: string
+ label: be2 port 7 OAM ip address
+ description: be2 port 7 OAM ip address
+ be3_OAM_direct_ips:
+ type: string
+ label: be3 port 7 OAM ip address
+ description: be3 port 7 OAM ip address
+ be4_OAM_direct_ips:
+ type: string
+ label: be4 port 7 OAM ip address
+ description: be4 port 7 OAM ip address
+ fe0_SIGNET_vrf_A1_direct_ips:
+ type: string
+ label: fe0 port 0 SIGTRAN ip address
+ description: fe0 port 0 SIGTRAN ip address
+ fe0_OAM_direct_ips:
+ type: string
+ label: fe0 port 7 OAM ip address
+ description: fe0 port 7 OAM ip address
+ fe1_SIGNET_vrf_B1_direct_ips:
+ type: string
+ label: fe1 port 1 SIGTRAN ip address
+ description: fe1 port 1 SIGTRAN ip address
+ fe1_OAM_direct_ips:
+ type: string
+ label: fe1 port 7 OAM ip address
+ description: fe1 port 7 OAM ip address
+ smp0_OAM_direct_ips:
+ type: string
+ label: smp0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ smp1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: smp1 port 7 OAM ip address
+ db0_OAM_direct_ips:
+ type: string
+ label: db0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ db1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: db1 port 7 OAM ip address
+ vm_scp_be0_name:
+ type: string
+ default: vSCP_BE0
+ description: name of VM
+ vm_scp_be1_name:
+ type: string
+ default: vSCP_BE1
+ description: name of VM
+ vm_scp_be2_name:
+ type: string
+ default: vSCP_BE2
+ description: name of VM
+ vm_scp_be3_name:
+ type: string
+ default: vSCP_BE3
+ description: name of VM
+ vm_scp_be4_name:
+ type: string
+ default: vSCP_BE4
+ description: name of VM
+ vm_scp_fe0_name:
+ type: string
+ default: vSCP_FE0
+ description: name of VM
+ vm_scp_fe1_name:
+ type: string
+ default: vSCP_FE1
+ description: name of VM
+ vm_smp0_name:
+ type: string
+ default: vSMP0
+ description: name of VM
+ vm_smp1_name:
+ type: string
+ default: vSMP1
+ description: name of VM
+ vm_db0_name:
+ type: string
+ default: vDB0
+ description: name of VM
+ vm_db1_name:
+ type: string
+ default: vDB1
+ description: name of VM
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.zip b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.zip
new file mode 100644
index 0000000000..c8a2726421
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat 0 2.zip
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat_net 0 2.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat_net 0 2.yaml
new file mode 100644
index 0000000000..6835485ca1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/asc_heat_net 0 2.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance
+ default: This_is_ths_SCP_id
+
+ flavor_scp_be_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_scp_fe_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_smp_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_db_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ image_scp_be_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_be
+ image_scp_fe_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_fe
+ image_smp_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_smp
+ image_db_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_db
+
+ int_vscp_fe_cluster_net_id:
+ type: string
+ description: LAN2 FE Cluster/KA
+ int_vscp_fe_cluster_cidr:
+ type: string
+ description: Private Network2 Address (CIDR notation)
+ int_vscp_cluster_net_id:
+ type: string
+ description: LAN3 Cluster
+ int_vscp_cluster_cidr:
+ type: string
+ description: Private Network3 Address (CIDR notation)
+ int_vscp_db_network_net_id:
+ type: string
+ description: LAN4 DB
+ int_vscp_db_network_cidr:
+ type: string
+ description: Private Network4 Address (CIDR notation)
+ SIGNET_vrf_A1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_A
+ SIGNET_vrf_B1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_B
+ Cricket_OCS_protected_net_id:
+ type: string
+ description: Network name for CRICKET_OCS
+ OAM_direct_net_id:
+ type: string
+ description: Network name for OAM
+ be0_Cricket_OCS_protected_ips:
+ type: string
+ label: be0 port 5 OAM ip address
+ description: be0 port 5 OAM ip address
+ be1_Cricket_OCS_protected_ips:
+ type: string
+ label: be1 port 5 OAM ip address
+ description: be1 port 5 OAM ip address
+ be2_Cricket_OCS_protected_ips:
+ type: string
+ label: be2 port 5 OAM ip address
+ description: be2 port 5 OAM ip address
+ be3_Cricket_OCS_protected_ips:
+ type: string
+ label: be3 port 5 OAM ip address
+ description: be3 port 5 OAM ip address
+ be4_Cricket_OCS_protected_ips:
+ type: string
+ label: be4 port 5 OAM ip address
+ description: be4 port 5 OAM ip address
+ be0_OAM_direct_ips:
+ type: string
+ label: be0 port 7 OAM ip address
+ description: be0 port 7 OAM ip address
+ be1_OAM_direct_ips:
+ type: string
+ label: be1 port 7 OAM ip address
+ description: be1 port 7 OAM ip address
+ be2_OAM_direct_ips:
+ type: string
+ label: be2 port 7 OAM ip address
+ description: be2 port 7 OAM ip address
+ be3_OAM_direct_ips:
+ type: string
+ label: be3 port 7 OAM ip address
+ description: be3 port 7 OAM ip address
+ be4_OAM_direct_ips:
+ type: string
+ label: be4 port 7 OAM ip address
+ description: be4 port 7 OAM ip address
+ fe0_SIGNET_vrf_A1_direct_ips:
+ type: string
+ label: fe0 port 0 SIGTRAN ip address
+ description: fe0 port 0 SIGTRAN ip address
+ fe0_OAM_direct_ips:
+ type: string
+ label: fe0 port 7 OAM ip address
+ description: fe0 port 7 OAM ip address
+ fe1_SIGNET_vrf_B1_direct_ips:
+ type: string
+ label: fe1 port 1 SIGTRAN ip address
+ description: fe1 port 1 SIGTRAN ip address
+ fe1_OAM_direct_ips:
+ type: string
+ label: fe1 port 7 OAM ip address
+ description: fe1 port 7 OAM ip address
+ smp0_OAM_direct_ips:
+ type: string
+ label: smp0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ smp1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: smp1 port 7 OAM ip address
+ db0_OAM_direct_ips:
+ type: string
+ label: db0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ db1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: db1 port 7 OAM ip address
+ vm_scp_be0_name:
+ type: string
+ default: vSCP_BE0
+ description: name of VM
+ vm_scp_be1_name:
+ type: string
+ default: vSCP_BE1
+ description: name of VM
+ vm_scp_be2_name:
+ type: string
+ default: vSCP_BE2
+ description: name of VM
+ vm_scp_be3_name:
+ type: string
+ default: vSCP_BE3
+ description: name of VM
+ vm_scp_be4_name:
+ type: string
+ default: vSCP_BE4
+ description: name of VM
+ vm_scp_fe0_name:
+ type: string
+ default: vSCP_FE0
+ description: name of VM
+ vm_scp_fe1_name:
+ type: string
+ default: vSCP_FE1
+ description: name of VM
+ vm_smp0_name:
+ type: string
+ default: vSMP0
+ description: name of VM
+ vm_smp1_name:
+ type: string
+ default: vSMP1
+ description: name of VM
+ vm_db0_name:
+ type: string
+ default: vDB0
+ description: name of VM
+ vm_db1_name:
+ type: string
+ default: vDB1
+ description: name of VM
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatEnvfile.env b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatEnvfile.env
new file mode 100644
index 0000000000..6835485ca1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatEnvfile.env
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance
+ default: This_is_ths_SCP_id
+
+ flavor_scp_be_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_scp_fe_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_smp_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_db_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ image_scp_be_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_be
+ image_scp_fe_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_fe
+ image_smp_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_smp
+ image_db_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_db
+
+ int_vscp_fe_cluster_net_id:
+ type: string
+ description: LAN2 FE Cluster/KA
+ int_vscp_fe_cluster_cidr:
+ type: string
+ description: Private Network2 Address (CIDR notation)
+ int_vscp_cluster_net_id:
+ type: string
+ description: LAN3 Cluster
+ int_vscp_cluster_cidr:
+ type: string
+ description: Private Network3 Address (CIDR notation)
+ int_vscp_db_network_net_id:
+ type: string
+ description: LAN4 DB
+ int_vscp_db_network_cidr:
+ type: string
+ description: Private Network4 Address (CIDR notation)
+ SIGNET_vrf_A1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_A
+ SIGNET_vrf_B1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_B
+ Cricket_OCS_protected_net_id:
+ type: string
+ description: Network name for CRICKET_OCS
+ OAM_direct_net_id:
+ type: string
+ description: Network name for OAM
+ be0_Cricket_OCS_protected_ips:
+ type: string
+ label: be0 port 5 OAM ip address
+ description: be0 port 5 OAM ip address
+ be1_Cricket_OCS_protected_ips:
+ type: string
+ label: be1 port 5 OAM ip address
+ description: be1 port 5 OAM ip address
+ be2_Cricket_OCS_protected_ips:
+ type: string
+ label: be2 port 5 OAM ip address
+ description: be2 port 5 OAM ip address
+ be3_Cricket_OCS_protected_ips:
+ type: string
+ label: be3 port 5 OAM ip address
+ description: be3 port 5 OAM ip address
+ be4_Cricket_OCS_protected_ips:
+ type: string
+ label: be4 port 5 OAM ip address
+ description: be4 port 5 OAM ip address
+ be0_OAM_direct_ips:
+ type: string
+ label: be0 port 7 OAM ip address
+ description: be0 port 7 OAM ip address
+ be1_OAM_direct_ips:
+ type: string
+ label: be1 port 7 OAM ip address
+ description: be1 port 7 OAM ip address
+ be2_OAM_direct_ips:
+ type: string
+ label: be2 port 7 OAM ip address
+ description: be2 port 7 OAM ip address
+ be3_OAM_direct_ips:
+ type: string
+ label: be3 port 7 OAM ip address
+ description: be3 port 7 OAM ip address
+ be4_OAM_direct_ips:
+ type: string
+ label: be4 port 7 OAM ip address
+ description: be4 port 7 OAM ip address
+ fe0_SIGNET_vrf_A1_direct_ips:
+ type: string
+ label: fe0 port 0 SIGTRAN ip address
+ description: fe0 port 0 SIGTRAN ip address
+ fe0_OAM_direct_ips:
+ type: string
+ label: fe0 port 7 OAM ip address
+ description: fe0 port 7 OAM ip address
+ fe1_SIGNET_vrf_B1_direct_ips:
+ type: string
+ label: fe1 port 1 SIGTRAN ip address
+ description: fe1 port 1 SIGTRAN ip address
+ fe1_OAM_direct_ips:
+ type: string
+ label: fe1 port 7 OAM ip address
+ description: fe1 port 7 OAM ip address
+ smp0_OAM_direct_ips:
+ type: string
+ label: smp0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ smp1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: smp1 port 7 OAM ip address
+ db0_OAM_direct_ips:
+ type: string
+ label: db0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ db1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: db1 port 7 OAM ip address
+ vm_scp_be0_name:
+ type: string
+ default: vSCP_BE0
+ description: name of VM
+ vm_scp_be1_name:
+ type: string
+ default: vSCP_BE1
+ description: name of VM
+ vm_scp_be2_name:
+ type: string
+ default: vSCP_BE2
+ description: name of VM
+ vm_scp_be3_name:
+ type: string
+ default: vSCP_BE3
+ description: name of VM
+ vm_scp_be4_name:
+ type: string
+ default: vSCP_BE4
+ description: name of VM
+ vm_scp_fe0_name:
+ type: string
+ default: vSCP_FE0
+ description: name of VM
+ vm_scp_fe1_name:
+ type: string
+ default: vSCP_FE1
+ description: name of VM
+ vm_smp0_name:
+ type: string
+ default: vSMP0
+ description: name of VM
+ vm_smp1_name:
+ type: string
+ default: vSMP1
+ description: name of VM
+ vm_db0_name:
+ type: string
+ default: vDB0
+ description: name of VM
+ vm_db1_name:
+ type: string
+ default: vDB1
+ description: name of VM
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatInvalidFormat.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatInvalidFormat.yaml
new file mode 100644
index 0000000000..b70d5a4b0a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heatInvalidFormat.yaml
@@ -0,0 +1,9 @@
+heat_template_version: 2013-05-23
+
+parameters:
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heat_mini.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heat_mini.yaml
new file mode 100644
index 0000000000..a545569129
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/heat_mini.yaml
@@ -0,0 +1,13 @@
+heat_template_version: 2013-05-23
+
+parameters:
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+
+resources:
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidJson.json b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidJson.json
new file mode 100644
index 0000000000..48a3e89deb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidJson.json
@@ -0,0 +1,11 @@
+{
+ "glossary": {
+ "title": "example glossary",
+ "GlossDiv": {
+ "title": "S",
+ "GlossList": {
+ "GlossEntry": {
+ "ID": "SGML",
+ "SortAs": "SGML",
+ "GlossTerm": "Standard Generalized Markup Language",
+ "Acronym": "SGML",
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYamlFormat.yaml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYamlFormat.yaml
new file mode 100644
index 0000000000..5c51039931
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYamlFormat.yaml
@@ -0,0 +1,787 @@
+ heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance
+ default: This_is_ths_SCP_id
+
+ flavor_scp_be_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_scp_fe_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_smp_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_db_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ image_scp_be_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_be
+ image_scp_fe_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_fe
+ image_smp_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_smp
+ image_db_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_db
+
+ int_vscp_fe_cluster_net_id:
+ type: string
+ description: LAN2 FE Cluster/KA
+ int_vscp_fe_cluster_cidr:
+ type: string
+ description: Private Network2 Address (CIDR notation)
+ int_vscp_cluster_net_id:
+ type: string
+ description: LAN3 Cluster
+ int_vscp_cluster_cidr:
+ type: string
+ description: Private Network3 Address (CIDR notation)
+ int_vscp_db_network_net_id:
+ type: string
+ description: LAN4 DB
+ int_vscp_db_network_cidr:
+ type: string
+ description: Private Network4 Address (CIDR notation)
+ SIGNET_vrf_A1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_A
+ SIGNET_vrf_B1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_B
+ Cricket_OCS_protected_net_id:
+ type: string
+ description: Network name for CRICKET_OCS
+ OAM_direct_net_id:
+ type: string
+ description: Network name for OAM
+ be0_Cricket_OCS_protected_ips:
+ type: string
+ label: be0 port 5 OAM ip address
+ description: be0 port 5 OAM ip address
+ be1_Cricket_OCS_protected_ips:
+ type: string
+ label: be1 port 5 OAM ip address
+ description: be1 port 5 OAM ip address
+ be2_Cricket_OCS_protected_ips:
+ type: string
+ label: be2 port 5 OAM ip address
+ description: be2 port 5 OAM ip address
+ be3_Cricket_OCS_protected_ips:
+ type: string
+ label: be3 port 5 OAM ip address
+ description: be3 port 5 OAM ip address
+ be4_Cricket_OCS_protected_ips:
+ type: string
+ label: be4 port 5 OAM ip address
+ description: be4 port 5 OAM ip address
+ be0_OAM_direct_ips:
+ type: string
+ label: be0 port 7 OAM ip address
+ description: be0 port 7 OAM ip address
+ be1_OAM_direct_ips:
+ type: string
+ label: be1 port 7 OAM ip address
+ description: be1 port 7 OAM ip address
+ be2_OAM_direct_ips:
+ type: string
+ label: be2 port 7 OAM ip address
+ description: be2 port 7 OAM ip address
+ be3_OAM_direct_ips:
+ type: string
+ label: be3 port 7 OAM ip address
+ description: be3 port 7 OAM ip address
+ be4_OAM_direct_ips:
+ type: string
+ label: be4 port 7 OAM ip address
+ description: be4 port 7 OAM ip address
+ fe0_SIGNET_vrf_A1_direct_ips:
+ type: string
+ label: fe0 port 0 SIGTRAN ip address
+ description: fe0 port 0 SIGTRAN ip address
+ fe0_OAM_direct_ips:
+ type: string
+ label: fe0 port 7 OAM ip address
+ description: fe0 port 7 OAM ip address
+ fe1_SIGNET_vrf_B1_direct_ips:
+ type: string
+ label: fe1 port 1 SIGTRAN ip address
+ description: fe1 port 1 SIGTRAN ip address
+ fe1_OAM_direct_ips:
+ type: string
+ label: fe1 port 7 OAM ip address
+ description: fe1 port 7 OAM ip address
+ smp0_OAM_direct_ips:
+ type: string
+ label: smp0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ smp1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: smp1 port 7 OAM ip address
+ db0_OAM_direct_ips:
+ type: string
+ label: db0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ db1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: db1 port 7 OAM ip address
+ vm_scp_be0_name:
+ type: string
+ default: vSCP_BE0
+ description: name of VM
+ vm_scp_be1_name:
+ type: string
+ default: vSCP_BE1
+ description: name of VM
+ vm_scp_be2_name:
+ type: string
+ default: vSCP_BE2
+ description: name of VM
+ vm_scp_be3_name:
+ type: string
+ default: vSCP_BE3
+ description: name of VM
+ vm_scp_be4_name:
+ type: string
+ default: vSCP_BE4
+ description: name of VM
+ vm_scp_fe0_name:
+ type: string
+ default: vSCP_FE0
+ description: name of VM
+ vm_scp_fe1_name:
+ type: string
+ default: vSCP_FE1
+ description: name of VM
+ vm_smp0_name:
+ type: string
+ default: vSMP0
+ description: name of VM
+ vm_smp1_name:
+ type: string
+ default: vSMP1
+ description: name of VM
+ vm_db0_name:
+ type: string
+ default: vDB0
+ description: name of VM
+ vm_db1_name:
+ type: string
+ default: vDB1
+ description: name of VM
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYangXml.xml b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYangXml.xml
new file mode 100644
index 0000000000..8978e0d5ed
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/invalidYangXml.xml
@@ -0,0 +1,35 @@
+<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+
+ <sports xmlns="http://example.com/example-sports">
+ <person>
+ <name>Lionel Andr�s Messi</name>
+ <birthday>1987-06-24T00:00:00-00:00</birthday>
+ </person>
+ <person>
+ <name>Cristiano Ronaldo</name>
+ <birthday>1985-02-05T00:00:00-00:00</birthday>
+ </person>
+ <team>
+ <name>FC Barcelona</name>
+ <player>
+ <name>Lionel Andr�s Messi</name>
+ <season>Champions League 2014/2015</season>
+ <number>10</number>
+ <scores>43</scores>
+ </player>
+ </team>
+ <team>
+ <name>Real Madrid</name>
+ <player>
+ <name>Cristiano Ronaldo</name>
+ <season>Champions League 2014/2015</season>
+ <number>7</number>
+ <scores>48</scores>
+ </player>
+ </team>
+ </sports>
+
+
+
+</data>
+</data> \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/jsonArtifact.json b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/jsonArtifact.json
new file mode 100644
index 0000000000..d5ca56d195
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/jsonArtifact.json
@@ -0,0 +1,22 @@
+{
+ "glossary": {
+ "title": "example glossary",
+ "GlossDiv": {
+ "title": "S",
+ "GlossList": {
+ "GlossEntry": {
+ "ID": "SGML",
+ "SortAs": "SGML",
+ "GlossTerm": "Standard Generalized Markup Language",
+ "Acronym": "SGML",
+ "Abbrev": "ISO 8879:1986",
+ "GlossDef": {
+ "para": "A meta-markup language, used to create markup languages such as DocBook.",
+ "GlossSeeAlso": ["GML", "XML"]
+ },
+ "GlossSee": "markup"
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/other.txt b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/other.txt
new file mode 100644
index 0000000000..5f8f77ca2c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/HeatDeploymentArtifacts/other.txt
@@ -0,0 +1,3 @@
+cmd1
+cmd2
+cmd3 \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/bluePrintSampleArtifact.xml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/bluePrintSampleArtifact.xml
new file mode 100644
index 0000000000..10c46b7269
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/bluePrintSampleArtifact.xml
@@ -0,0 +1,3 @@
+<test>
+ dfsfsdfsdf
+</test> \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/docSampleArtifact.docx b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/docSampleArtifact.docx
new file mode 100644
index 0000000000..c281f532f8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/docSampleArtifact.docx
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.emf b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.emf
new file mode 100644
index 0000000000..9c478f6ce1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.emf
@@ -0,0 +1,2 @@
+This is sample EMF file
+We currently not checking the file content. \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.xml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.xml
new file mode 100644
index 0000000000..10c46b7269
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/emfSampleArtifact.xml
@@ -0,0 +1,3 @@
+<test>
+ dfsfsdfsdf
+</test> \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/eventSampleArtifact.xml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/eventSampleArtifact.xml
new file mode 100644
index 0000000000..10c46b7269
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/eventSampleArtifact.xml
@@ -0,0 +1,3 @@
+<test>
+ dfsfsdfsdf
+</test> \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/jsonSampleArtifact.json b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/jsonSampleArtifact.json
new file mode 100644
index 0000000000..b749a9e89c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/jsonSampleArtifact.json
@@ -0,0 +1,3 @@
+{
+ "test": "This is test"
+}
diff --git a/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/toscaSampleArtifact.yml b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/toscaSampleArtifact.yml
new file mode 100644
index 0000000000..10ccf71d51
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/ResourceInstanceArtifacts/toscaSampleArtifact.yml
@@ -0,0 +1,5 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+ org.openecomp.resource.cp.CP:
+ derived_from: org.openecomp.resource.cp.root \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/addHeatArtifactToServiceAndSertify/asc_heat 0 2.yaml b/test-apis-ci/src/test/resources/CI/tests/addHeatArtifactToServiceAndSertify/asc_heat 0 2.yaml
new file mode 100644
index 0000000000..6835485ca1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/addHeatArtifactToServiceAndSertify/asc_heat 0 2.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance
+ default: This_is_ths_SCP_id
+
+ flavor_scp_be_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_scp_fe_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_smp_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_db_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ image_scp_be_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_be
+ image_scp_fe_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_fe
+ image_smp_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_smp
+ image_db_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_db
+
+ int_vscp_fe_cluster_net_id:
+ type: string
+ description: LAN2 FE Cluster/KA
+ int_vscp_fe_cluster_cidr:
+ type: string
+ description: Private Network2 Address (CIDR notation)
+ int_vscp_cluster_net_id:
+ type: string
+ description: LAN3 Cluster
+ int_vscp_cluster_cidr:
+ type: string
+ description: Private Network3 Address (CIDR notation)
+ int_vscp_db_network_net_id:
+ type: string
+ description: LAN4 DB
+ int_vscp_db_network_cidr:
+ type: string
+ description: Private Network4 Address (CIDR notation)
+ SIGNET_vrf_A1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_A
+ SIGNET_vrf_B1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_B
+ Cricket_OCS_protected_net_id:
+ type: string
+ description: Network name for CRICKET_OCS
+ OAM_direct_net_id:
+ type: string
+ description: Network name for OAM
+ be0_Cricket_OCS_protected_ips:
+ type: string
+ label: be0 port 5 OAM ip address
+ description: be0 port 5 OAM ip address
+ be1_Cricket_OCS_protected_ips:
+ type: string
+ label: be1 port 5 OAM ip address
+ description: be1 port 5 OAM ip address
+ be2_Cricket_OCS_protected_ips:
+ type: string
+ label: be2 port 5 OAM ip address
+ description: be2 port 5 OAM ip address
+ be3_Cricket_OCS_protected_ips:
+ type: string
+ label: be3 port 5 OAM ip address
+ description: be3 port 5 OAM ip address
+ be4_Cricket_OCS_protected_ips:
+ type: string
+ label: be4 port 5 OAM ip address
+ description: be4 port 5 OAM ip address
+ be0_OAM_direct_ips:
+ type: string
+ label: be0 port 7 OAM ip address
+ description: be0 port 7 OAM ip address
+ be1_OAM_direct_ips:
+ type: string
+ label: be1 port 7 OAM ip address
+ description: be1 port 7 OAM ip address
+ be2_OAM_direct_ips:
+ type: string
+ label: be2 port 7 OAM ip address
+ description: be2 port 7 OAM ip address
+ be3_OAM_direct_ips:
+ type: string
+ label: be3 port 7 OAM ip address
+ description: be3 port 7 OAM ip address
+ be4_OAM_direct_ips:
+ type: string
+ label: be4 port 7 OAM ip address
+ description: be4 port 7 OAM ip address
+ fe0_SIGNET_vrf_A1_direct_ips:
+ type: string
+ label: fe0 port 0 SIGTRAN ip address
+ description: fe0 port 0 SIGTRAN ip address
+ fe0_OAM_direct_ips:
+ type: string
+ label: fe0 port 7 OAM ip address
+ description: fe0 port 7 OAM ip address
+ fe1_SIGNET_vrf_B1_direct_ips:
+ type: string
+ label: fe1 port 1 SIGTRAN ip address
+ description: fe1 port 1 SIGTRAN ip address
+ fe1_OAM_direct_ips:
+ type: string
+ label: fe1 port 7 OAM ip address
+ description: fe1 port 7 OAM ip address
+ smp0_OAM_direct_ips:
+ type: string
+ label: smp0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ smp1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: smp1 port 7 OAM ip address
+ db0_OAM_direct_ips:
+ type: string
+ label: db0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ db1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: db1 port 7 OAM ip address
+ vm_scp_be0_name:
+ type: string
+ default: vSCP_BE0
+ description: name of VM
+ vm_scp_be1_name:
+ type: string
+ default: vSCP_BE1
+ description: name of VM
+ vm_scp_be2_name:
+ type: string
+ default: vSCP_BE2
+ description: name of VM
+ vm_scp_be3_name:
+ type: string
+ default: vSCP_BE3
+ description: name of VM
+ vm_scp_be4_name:
+ type: string
+ default: vSCP_BE4
+ description: name of VM
+ vm_scp_fe0_name:
+ type: string
+ default: vSCP_FE0
+ description: name of VM
+ vm_scp_fe1_name:
+ type: string
+ default: vSCP_FE1
+ description: name of VM
+ vm_smp0_name:
+ type: string
+ default: vSMP0
+ description: name of VM
+ vm_smp1_name:
+ type: string
+ default: vSMP1
+ description: name of VM
+ vm_db0_name:
+ type: string
+ default: vDB0
+ description: name of VM
+ vm_db1_name:
+ type: string
+ default: vDB1
+ description: name of VM
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/downloadResourceArtifactSuccess/org.openstack.Rally.zip b/test-apis-ci/src/test/resources/CI/tests/downloadResourceArtifactSuccess/org.openstack.Rally.zip
new file mode 100644
index 0000000000..0951d5cef8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/downloadResourceArtifactSuccess/org.openstack.Rally.zip
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
new file mode 100644
index 0000000000..f512f8071e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactFileContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getResourceArtifactFileContentTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactFileContentTest/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
new file mode 100644
index 0000000000..180e247ea2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListNoContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactListNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getResourceArtifactListNoContentTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
new file mode 100644
index 0000000000..b8f9bbdc69
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-GetResourceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-GetResourceArtifactListTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactListTest/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
new file mode 100644
index 0000000000..72ff4f37e0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataNoContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactMetadataNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getResourceArtifactMetadataNoContentTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
new file mode 100644
index 0000000000..527e4a0081
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactMetadataTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getResourceArtifactMetadataTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactMetadataTest/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
new file mode 100644
index 0000000000..7177a65387
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getResourceArtifactPayloadNoContentTest/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getResourceArtifactPayloadNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getResourceArtifactPayloadNoContentTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
new file mode 100644
index 0000000000..e0a0c6458e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListTest:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource1/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
new file mode 100644
index 0000000000..dc5ff158c8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListTest2:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/install_mysql2.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/resource2/scripts/start_mysql2.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
new file mode 100644
index 0000000000..cb3c3e8546
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topology.txt
@@ -0,0 +1 @@
+{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
new file mode 100644
index 0000000000..f0d0849db8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListInvalidVersionNotFoundTest/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
new file mode 100644
index 0000000000..4ee2c8ca88
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListNoContentTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
new file mode 100644
index 0000000000..b564dd0c4e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
new file mode 100644
index 0000000000..279351879a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topology.txt
@@ -0,0 +1 @@
+{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
new file mode 100644
index 0000000000..3c342f6cd1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListNoContentTest/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
new file mode 100644
index 0000000000..e0a0c6458e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListTest:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource1/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
new file mode 100644
index 0000000000..dc5ff158c8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListTest2:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/install_mysql2.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/resource2/scripts/start_mysql2.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
new file mode 100644
index 0000000000..cb3c3e8546
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topology.txt
@@ -0,0 +1 @@
+{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
new file mode 100644
index 0000000000..f0d0849db8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceArtifactListTest/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
new file mode 100644
index 0000000000..e0a0c6458e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListTest:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListTest:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource1/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
new file mode 100644
index 0000000000..dc5ff158c8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListTest2:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListTest2
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListTest2:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListTest2:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/install_mysql2.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/resource2/scripts/start_mysql2.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
new file mode 100644
index 0000000000..cb3c3e8546
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topology.txt
@@ -0,0 +1 @@
+{"id":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7","delegateId":"9c063349-2259-40fe-97f1-7c40e659e1b0","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListTest","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListTest","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Mysql-getServiceArtifactListTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"hostedOnCompute":{"type":"tosca.relationships.HostedOn","target":"Compute","requirementName":"host","requirementType":"tosca.nodes.Compute","targetedCapabilityName":"host"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
new file mode 100644
index 0000000000..f0d0849db8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service1/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"9c063349-2259-40fe-97f1-7c40e659e1b0","name":"Andrey","description":null,"topologyId":"6a4b2f9d-7fe1-482d-af11-97f483dff5b7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
new file mode 100644
index 0000000000..4ee2c8ca88
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource1/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListNoContentTest:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
new file mode 100644
index 0000000000..b564dd0c4e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/resource2/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-getServiceArtifactListNoContentTest2
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-getServiceArtifactListNoContentTest2:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript-getServiceArtifactListNoContentTest2:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
new file mode 100644
index 0000000000..279351879a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topology.txt
@@ -0,0 +1 @@
+{"id":"3293c9c8-a162-43fc-b8d1-431399f89cb7","delegateId":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-DBMS","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"mysql-getServiceArtifactListNoContentTest2","version":"1.1.1-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-database","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Mysql-getServiceArtifactListNoContentTest2","value":{"type":"alien.nodes.Mysql-getServiceArtifactListNoContentTest2","name":null,"properties":{"bind_address":"true","storage_path":"/mountedStorage","db_port":"3306","db_name":"wordpress","db_user":"pass","db_password":"pass"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"database_endpoint":{"type":"tosca.capabilities.DatabaseEndpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.MysqlDatabase-getServiceArtifactListNoContentTest2","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":{"scripts":{"artifactType":"tosca.artifacts.File","artifactRef":"scripts","artifactName":"scripts","artifactRepository":null}}}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":{"dependsOnMysql-getServiceArtifactListNoContentTest2":{"type":"tosca.relationships.DependsOn","target":"Mysql-getServiceArtifactListNoContentTest2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"root"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
new file mode 100644
index 0000000000..3c342f6cd1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/getServiceListTest/Service2/topologyTemplate.txt
@@ -0,0 +1,2 @@
+{"id":"25845cce-05c8-4502-b5fe-abfd6bd6f28e","name":"ServiceArtListNoContent","description":null,"topologyId":"3293c9c8-a162-43fc-b8d1-431399f89cb7"}
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDefault.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDefault.yaml
new file mode 100644
index 0000000000..6aad589bdb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDefault.yaml
@@ -0,0 +1,603 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_missing_default:
+ type: string
+ description: Unique name for this VNF instance
+ label: be4 port 5 OAM ip address
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDesc.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDesc.yaml
new file mode 100644
index 0000000000..d51a20d77f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingDesc.yaml
@@ -0,0 +1,603 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_missing_desc:
+ type: string
+ default: This_is_the_SCP_name
+ label: be4 port 5 OAM ip address
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingType.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingType.yaml
new file mode 100644
index 0000000000..29527495f7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithParamsMissingType.yaml
@@ -0,0 +1,603 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_missing_desc:
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+ label: be4 port 5 OAM ip address
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithValidParams.yaml b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithValidParams.yaml
new file mode 100644
index 0000000000..6835485ca1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatArtifactParameters/heatWithValidParams.yaml
@@ -0,0 +1,787 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+# availability_zone_smp0:
+# type: string
+# default: nova
+# availability_zone_smp1:
+# type: string
+# default: nova
+# availability_zone_fe0:
+# type: string
+# default: nova
+# availability_zone_fe1:
+# type: string
+# default: nova
+# availability_zone_db0:
+# type: string
+# default: nova
+# availability_zone_db1:
+# type: string
+# default: nova
+# availability_zone_be0:
+# type: string
+# default: nova
+# availability_zone_be1:
+# type: string
+# default: nova
+# availability_zone_be2:
+# type: string
+# default: nova
+# availability_zone_be3:
+# type: string
+# default: nova
+# availability_zone_be4:
+# type: string
+# default: nova
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance
+ default: This_is_the_SCP_name
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance
+ default: This_is_ths_SCP_id
+
+ flavor_scp_be_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_scp_fe_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_smp_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ flavor_db_id:
+ type: string
+ description: flavor type
+ default: a1.Small
+ image_scp_be_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_be
+ image_scp_fe_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_fe
+ image_smp_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_smp
+ image_db_id:
+ type: string
+ description: Image use to boot a server
+ default: asc_base_image_db
+
+ int_vscp_fe_cluster_net_id:
+ type: string
+ description: LAN2 FE Cluster/KA
+ int_vscp_fe_cluster_cidr:
+ type: string
+ description: Private Network2 Address (CIDR notation)
+ int_vscp_cluster_net_id:
+ type: string
+ description: LAN3 Cluster
+ int_vscp_cluster_cidr:
+ type: string
+ description: Private Network3 Address (CIDR notation)
+ int_vscp_db_network_net_id:
+ type: string
+ description: LAN4 DB
+ int_vscp_db_network_cidr:
+ type: string
+ description: Private Network4 Address (CIDR notation)
+ SIGNET_vrf_A1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_A
+ SIGNET_vrf_B1_direct_net_id:
+ type: string
+ description: Network name for SIGTRAN_B
+ Cricket_OCS_protected_net_id:
+ type: string
+ description: Network name for CRICKET_OCS
+ OAM_direct_net_id:
+ type: string
+ description: Network name for OAM
+ be0_Cricket_OCS_protected_ips:
+ type: string
+ label: be0 port 5 OAM ip address
+ description: be0 port 5 OAM ip address
+ be1_Cricket_OCS_protected_ips:
+ type: string
+ label: be1 port 5 OAM ip address
+ description: be1 port 5 OAM ip address
+ be2_Cricket_OCS_protected_ips:
+ type: string
+ label: be2 port 5 OAM ip address
+ description: be2 port 5 OAM ip address
+ be3_Cricket_OCS_protected_ips:
+ type: string
+ label: be3 port 5 OAM ip address
+ description: be3 port 5 OAM ip address
+ be4_Cricket_OCS_protected_ips:
+ type: string
+ label: be4 port 5 OAM ip address
+ description: be4 port 5 OAM ip address
+ be0_OAM_direct_ips:
+ type: string
+ label: be0 port 7 OAM ip address
+ description: be0 port 7 OAM ip address
+ be1_OAM_direct_ips:
+ type: string
+ label: be1 port 7 OAM ip address
+ description: be1 port 7 OAM ip address
+ be2_OAM_direct_ips:
+ type: string
+ label: be2 port 7 OAM ip address
+ description: be2 port 7 OAM ip address
+ be3_OAM_direct_ips:
+ type: string
+ label: be3 port 7 OAM ip address
+ description: be3 port 7 OAM ip address
+ be4_OAM_direct_ips:
+ type: string
+ label: be4 port 7 OAM ip address
+ description: be4 port 7 OAM ip address
+ fe0_SIGNET_vrf_A1_direct_ips:
+ type: string
+ label: fe0 port 0 SIGTRAN ip address
+ description: fe0 port 0 SIGTRAN ip address
+ fe0_OAM_direct_ips:
+ type: string
+ label: fe0 port 7 OAM ip address
+ description: fe0 port 7 OAM ip address
+ fe1_SIGNET_vrf_B1_direct_ips:
+ type: string
+ label: fe1 port 1 SIGTRAN ip address
+ description: fe1 port 1 SIGTRAN ip address
+ fe1_OAM_direct_ips:
+ type: string
+ label: fe1 port 7 OAM ip address
+ description: fe1 port 7 OAM ip address
+ smp0_OAM_direct_ips:
+ type: string
+ label: smp0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ smp1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: smp1 port 7 OAM ip address
+ db0_OAM_direct_ips:
+ type: string
+ label: db0 port 7 OAM ip address
+ description: smp0 port 7 OAM ip address
+ db1_OAM_direct_ips:
+ type: string
+ label: smp1 port 7 OAM ip address
+ description: db1 port 7 OAM ip address
+ vm_scp_be0_name:
+ type: string
+ default: vSCP_BE0
+ description: name of VM
+ vm_scp_be1_name:
+ type: string
+ default: vSCP_BE1
+ description: name of VM
+ vm_scp_be2_name:
+ type: string
+ default: vSCP_BE2
+ description: name of VM
+ vm_scp_be3_name:
+ type: string
+ default: vSCP_BE3
+ description: name of VM
+ vm_scp_be4_name:
+ type: string
+ default: vSCP_BE4
+ description: name of VM
+ vm_scp_fe0_name:
+ type: string
+ default: vSCP_FE0
+ description: name of VM
+ vm_scp_fe1_name:
+ type: string
+ default: vSCP_FE1
+ description: name of VM
+ vm_smp0_name:
+ type: string
+ default: vSMP0
+ description: name of VM
+ vm_smp1_name:
+ type: string
+ default: vSMP1
+ description: name of VM
+ vm_db0_name:
+ type: string
+ default: vDB0
+ description: name of VM
+ vm_db1_name:
+ type: string
+ default: vDB1
+ description: name of VM
+
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_1.yaml b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_1.yaml
new file mode 100644
index 0000000000..7d4a85c2b6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_1.yaml
@@ -0,0 +1,144 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: string
+ description: city name
+ default: Hulon
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+ private_building:
+ type: boolean
+ description: home_number
+ default: true
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_2.yaml b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_2.yaml
new file mode 100644
index 0000000000..2c404f0721
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatEnv/artifact_2.yaml
@@ -0,0 +1,469 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+parameters:
+ city_name:
+ type: string
+ description: city name
+ default: Hulon
+ address:
+ type: string
+ description: address
+ default: Narkis
+ home_number:
+ type: number
+ description: home_number
+ default: 14
+ private_building:
+ type: boolean
+ description: home_number
+ default: true
+resources:
+ be0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be0_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
+
+ be0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
+
+ server_scp_be1:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be1_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be1 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be1_port_3 }
+ - port: { get_resource: be1_port_4 }
+ - port: { get_resource: be1_port_5 }
+ - port: { get_resource: be1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be1_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be1_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
+
+ be1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
+
+ server_scp_be2:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be2_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be2 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be2_port_3 }
+ - port: { get_resource: be2_port_4 }
+ - port: { get_resource: be2_port_5 }
+ - port: { get_resource: be2_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be2_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be2_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
+
+ be2_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
+
+ server_scp_be3:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be3_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be3 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be3_port_3 }
+ - port: { get_resource: be3_port_4 }
+ - port: { get_resource: be3_port_5 }
+ - port: { get_resource: be3_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be3_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be3_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be3_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be3_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
+
+ be3_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
+
+ server_scp_be4:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be4_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be4 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be4_port_3 }
+ - port: { get_resource: be4_port_4 }
+ - port: { get_resource: be4_port_5 }
+ - port: { get_resource: be4_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be4_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
+
+ be4_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ be4_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ be4_port_5:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: Cricket_OCS_protected_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
+
+ be4_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
+
+ server_scp_fe0:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe0_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe0 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe0_port_0 }
+ - port: { get_resource: fe0_port_2 }
+ - port: { get_resource: fe0_port_3 }
+ - port: { get_resource: fe0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe0_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe0_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_A1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
+
+ fe0_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe0_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
+
+ server_scp_fe1:
+ type: OS::Nova::Server
+# depends on: scp_be_wait_condition
+ properties:
+ name: { get_param: vm_scp_fe1_name }
+ image: { get_param: image_scp_fe_id }
+# availability_zone: { get_param: availability_zone_fe1 }
+ flavor: { get_param: flavor_scp_fe_id }
+ scheduler_hints: { group: { get_resource: FE_Affinity } }
+ networks:
+ - port: { get_resource: fe1_port_1 }
+ - port: { get_resource: fe1_port_2 }
+ - port: { get_resource: fe1_port_3 }
+ - port: { get_resource: fe1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_fe1_name}
+# wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
+
+ fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: SIGNET_vrf_B1_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
+
+ fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+
+ fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Clustering_Network }
+
+ fe1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
+
+ server_smp0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp0_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp0 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp0_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
+
+ server_smp1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vm_smp1_name }
+ image: { get_param: image_smp_id }
+# availability_zone: { get_param: availability_zone_smp1 }
+ flavor: { get_param: flavor_smp_id }
+ scheduler_hints: { group: { get_resource: SMP_Affinity } }
+ networks:
+ - port: { get_resource: smp1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_smp1_name}
+# wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
+
+ smp1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
+
+ server_db0:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db0_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db0 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db0_port_4 }
+ - port: { get_resource: db0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db0_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db0_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db0_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
+
+ server_db1:
+ type: OS::Nova::Server
+# depends_on: smp_wait_condition
+ properties:
+ name: { get_param: vm_db1_name }
+ image: { get_param: image_db_id }
+# availability_zone: { get_param: availability_zone_db1 }
+ flavor: { get_param: flavor_db_id }
+ scheduler_hints: { group: { get_resource: DB_Affinity } }
+ networks:
+ - port: { get_resource: db1_port_4 }
+ - port: { get_resource: db1_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_db1_name}
+# wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
+
+ db1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: DB_Network }
+
+ db1_port_7:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: OAM_direct_net_id }
+ fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/heatEnv/yuli.yaml b/test-apis-ci/src/test/resources/CI/tests/heatEnv/yuli.yaml
new file mode 100644
index 0000000000..7d4a85c2b6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/heatEnv/yuli.yaml
@@ -0,0 +1,144 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: string
+ description: city name
+ default: Hulon
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+ private_building:
+ type: boolean
+ description: home_number
+ default: true
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/BindingAsset.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/BindingAsset.yml
new file mode 100644
index 0000000000..5117247373
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/BindingAsset.yml
@@ -0,0 +1,14 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+ org.openecomp.resource.cp:
+ derived_from: tosca.nodes.Root
+ properties:
+ type:
+ type: string
+ required: false
+ requirements:
+ - VirtualBinding:
+ capability: tosca.capabilities.network.Bindable
+ relationship: tosca.relationships.network.BindsTo
+ occurrences: [0, UNBOUNDED] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap.yml
new file mode 100644
index 0000000000..8309df24b5
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap.yml
@@ -0,0 +1,9 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+ org.openecomp.resource.cp.CP:
+ derived_from: tosca.nodes.Compute
+ properties:
+ type:
+ type: string
+ required: false \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap_DerivedFromMyCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap_DerivedFromMyCompute1.yml
new file mode 100644
index 0000000000..478e742bc5
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPHasNoReqCap_DerivedFromMyCompute1.yml
@@ -0,0 +1,9 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+ org.openecomp.resource.cp.CP:
+ derived_from: org.openecomp.resource.MyCompute1
+ properties:
+ type:
+ type: string
+ required: false \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPWithAttributes.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPWithAttributes.yml
new file mode 100644
index 0000000000..807f7fe630
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CPWithAttributes.yml
@@ -0,0 +1,56 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+ org.openecomp.resource.cp.CP: derived_from: tosca.nodes.Root
+ properties:
+ type:
+ type: string
+ required: false
+ ip_address:
+ type: string
+ required: false
+ description: Allow the user to set a static IP.
+ order:
+ type: integer
+ required: false
+ default: 0
+ description: The order of the NIC on the compute instance (e.g. eth2).
+ is_default:
+ type: boolean
+ required: false
+ default: false
+ description: “If is_default=true this port will be used for the default gateway route. Only one port that is associated to single compute node can set as is_default=true.”
+ ip_range_start:
+ type: string
+ required: false
+ description: “Defines the starting IP of a range to be allocated for the VFC instances that are associated with this Port.”
+ ip_range_end:
+ type: string
+ required: false
+ description: “Defines the ending IP of a range to be allocated for the compute instances that are associated with this Port.”
+ is_tagged:
+ type: boolean
+ required: false
+ default: false
+ description:
+ attributes:
+ private_address:
+ type: string
+ default: "Hello"
+ value: "HelloWord"
+ public_address:
+ default: "DefaultValuePublicAddress"
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.network.Linkable relationship: tosca.relationships.network.LinksTo
+ - virtualbinding:
+ capability: tosca.capabilities.network.Bindable relationship: tosca.relationships.network.BindsTo \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_1.yml
new file mode 100644
index 0000000000..b9e6c4f9b5
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_1.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ capaBility:
+ type: tosca.capabilities.OperatingSystem
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_2.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_2.yml
new file mode 100644
index 0000000000..230e4fa924
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveCapTest_2.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute2:
+ derived_from: org.openecomp.resource.MyCompute1
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ Capability:
+ type: tosca.capabilities.OperatingSystem
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_1.yml
new file mode 100644
index 0000000000..0d097a8f20
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_1.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - requirEment:
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_2.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_2.yml
new file mode 100644
index 0000000000..9cc1f2737b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/CaseInsensitiveReqTest_2.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute2:
+ derived_from: org.openecomp.resource.MyCompute1
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - Requirement:
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromCPWithOwnReq.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromCPWithOwnReq.yml
new file mode 100644
index 0000000000..3514acfe9f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromCPWithOwnReq.yml
@@ -0,0 +1,14 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+ org.openecomp.resource.cp.LAN:
+ derived_from: org.openecomp.resource.cp.CP
+ properties:
+ type:
+ type: string
+ required: false
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ occurrences: [0, UNBOUNDED] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromWebApplication_HasNoReqType.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromWebApplication_HasNoReqType.yml
new file mode 100644
index 0000000000..7fbf4ec132
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DerivedFromWebApplication_HasNoReqType.yml
@@ -0,0 +1,27 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyChildWebApplication:
+ derived_from: tosca.nodes.WebApplication
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - diff:
+ capability:
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ deff:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentCapFromRoot.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentCapFromRoot.yml
new file mode 100644
index 0000000000..fe79bb3af9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentCapFromRoot.yml
@@ -0,0 +1,26 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyAsset:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - test:
+ capability: tosca.capabilities.Scalable
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqAndCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqAndCap.yml
new file mode 100644
index 0000000000..798cd5b9cd
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqAndCap.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - DependencY:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ FeaTurE:
+ type: tosca.capabilities.OperatingSystem \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute1.yml
new file mode 100644
index 0000000000..c72d0ee62a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute1.yml
@@ -0,0 +1,22 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute2:
+ derived_from: org.openecomp.resource.MyCompute1
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - diff:
+ capability: tosca.capabilities.Container
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute2.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute2.yml
new file mode 100644
index 0000000000..7132ca493a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqCapFromCompute2.yml
@@ -0,0 +1,25 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute3:
+ derived_from: org.openecomp.resource.MyCompute1
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - diff:
+ capability: tosca.capabilities.Container
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ deff:
+ type: tosca.capabilities.Container
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqFromCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqFromCompute.yml
new file mode 100644
index 0000000000..e9438bae3c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/DifferentReqFromCompute.yml
@@ -0,0 +1,32 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Compute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - test:
+ capability: tosca.capabilities.Scalable
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/FatherHasNoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/FatherHasNoReqCap.yml
new file mode 100644
index 0000000000..039ab61939
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/FatherHasNoReqCap.yml
@@ -0,0 +1,9 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+ org.openecomp.resource.cp.CP:
+ derived_from: tosca.nodes.Root
+ properties:
+ type:
+ type: string
+ required: false \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure01.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure01.yml
new file mode 100644
index 0000000000..f20a9eb48f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure01.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_boolean:
+ type: list
+ description : another description
+ default:
+ - false
+ - true
+ entry_schema:
+ description: This is my property
+ type: booolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure02.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure02.yml
new file mode 100644
index 0000000000..f1af89ca6a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure02.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - false
+ - truee
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure03.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure03.yml
new file mode 100644
index 0000000000..974d96ba5b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure03.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - false
+ - 3
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure04.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure04.yml
new file mode 100644
index 0000000000..52377e4b02
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure04.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - false
+ - 3.56
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure05.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure05.yml
new file mode 100644
index 0000000000..c66b4347f6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure05.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10000
+ - 3.56
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure06.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure06.yml
new file mode 100644
index 0000000000..79b3c03cdf
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure06.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10000
+ - aaaa
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure07.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure07.yml
new file mode 100644
index 0000000000..5556e9ddfb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure07.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10000
+ - true
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure08.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure08.yml
new file mode 100644
index 0000000000..a3b21a64a3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure08.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10.50
+ - true
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure09.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure09.yml
new file mode 100644
index 0000000000..dc28591499
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure09.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10.50
+ - asdc
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure10.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure10.yml
new file mode 100644
index 0000000000..e465448064
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure10.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10.50
+ - 500
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure11.yml
new file mode 100644
index 0000000000..a428b51974
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure11.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10.50
+ - 500.0@
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure12.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure12.yml
new file mode 100644
index 0000000000..d840253120
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure12.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10000
+ - 3#
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure13.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure13.yml
new file mode 100644
index 0000000000..4eb59886e4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure13.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - false
+ - true%
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure14.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure14.yml
new file mode 100644
index 0000000000..ad263f3d00
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure14.yml
@@ -0,0 +1,18 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - false
+ - falsee
+ - true
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure15.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure15.yml
new file mode 100644
index 0000000000..93e8caa0a3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure15.yml
@@ -0,0 +1,19 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: list
+ description : another description
+ default:
+ - 10.5
+ - 10.6x
+ - 20.5
+ - 30.5
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure16.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure16.yml
new file mode 100644
index 0000000000..ed8ea4d70c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/ListPropertyFalure16.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_boolean:
+ type: koko
+ description : another description
+ default:
+ - false
+ - true
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure01.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure01.yml
new file mode 100644
index 0000000000..c7ff0743f2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure01.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_boolean:
+ type: map
+ description : another description
+ default:
+ - false
+ - true
+ entry_schema:
+ description: This is my property
+ type: booolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure02.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure02.yml
new file mode 100644
index 0000000000..d9abb87db8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure02.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - false
+ - truee
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure03.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure03.yml
new file mode 100644
index 0000000000..e8f9b6eaa9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure03.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - false
+ - 3
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure04.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure04.yml
new file mode 100644
index 0000000000..d9dc4f955b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure04.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - false
+ - 3.56
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure05.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure05.yml
new file mode 100644
index 0000000000..aba6ff1992
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure05.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10000
+ - 3.56
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure06.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure06.yml
new file mode 100644
index 0000000000..f27904d6e6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure06.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10000
+ - aaaa
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure07.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure07.yml
new file mode 100644
index 0000000000..ea123f3b1b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure07.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10000
+ - true
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure08.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure08.yml
new file mode 100644
index 0000000000..87b51fb2de
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure08.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10.50
+ - true
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure09.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure09.yml
new file mode 100644
index 0000000000..2fc8ded544
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure09.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10.50
+ - asdc
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure10.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure10.yml
new file mode 100644
index 0000000000..3ab449d72e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure10.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10.50
+ - 500
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure11.yml
new file mode 100644
index 0000000000..e437de822e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure11.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10.50
+ - 500.0@
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure12.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure12.yml
new file mode 100644
index 0000000000..f2fbc7c435
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure12.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10000
+ - 3#
+ entry_schema:
+ description: This is my property
+ type: integer
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure13.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure13.yml
new file mode 100644
index 0000000000..e375aae197
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure13.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - false
+ - true%
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure14.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure14.yml
new file mode 100644
index 0000000000..e087212f1b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure14.yml
@@ -0,0 +1,18 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - false
+ - falsee
+ - true
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure15.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure15.yml
new file mode 100644
index 0000000000..3923ee18d7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure15.yml
@@ -0,0 +1,19 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_property:
+ type: map
+ description : another description
+ default:
+ - 10.5
+ - 10.6x
+ - 20.5
+ - 30.5
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure16.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure16.yml
new file mode 100644
index 0000000000..ed8ea4d70c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MapPropertyFalure16.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_boolean:
+ type: koko
+ description : another description
+ default:
+ - false
+ - true
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MyFatherCompute_NoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MyFatherCompute_NoReqCap.yml
new file mode 100644
index 0000000000..dfc564b458
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/MyFatherCompute_NoReqCap.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyFatherCompute:
+ derived_from: tosca.nodes.Compute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameCapAsCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameCapAsCompute.yml
new file mode 100644
index 0000000000..533333ee09
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameCapAsCompute.yml
@@ -0,0 +1,26 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Compute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ OS:
+ type: tosca.capabilities.OperatingSystem
+ BINDING:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute.yml
new file mode 100644
index 0000000000..9d8b2d8375
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute.yml
@@ -0,0 +1,23 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Compute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - LOCAL_STORAGE:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, 1] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute_DerivedFromMyCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute_DerivedFromMyCompute1.yml
new file mode 100644
index 0000000000..a5413e516f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/SameReqAsCompute_DerivedFromMyCompute1.yml
@@ -0,0 +1,23 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute2:
+ derived_from: org.openecomp.resource.MyCompute1
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - LOCAL_STORAGE:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, 2] \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap11.yml
new file mode 100644
index 0000000000..9cea0b9dc8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap11.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vfc.vfc3:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [1, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ occurrences: [1, 1]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap1UNBOUNDED.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap1UNBOUNDED.yml
new file mode 100644
index 0000000000..24efc27711
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/computeCap1UNBOUNDED.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vfc.vfc2:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [1, 1]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ occurrences: [1, UNBOUNDED]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromMyCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromMyCompute.yml
new file mode 100644
index 0000000000..237bec1f0c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromMyCompute.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.DerivedFromMyCompute:
+ derived_from: org.openecomp.resource.MyCompute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromWebAppDerivedReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromWebAppDerivedReqCap.yml
new file mode 100644
index 0000000000..0679bff4b1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/derivedFromWebAppDerivedReqCap.yml
@@ -0,0 +1,15 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyWebApp:
+ derived_from: tosca.nodes.WebApplication
+ properties:
+ context_root:
+ type: string
+ capabilities:
+ app_endpoint:
+ type: tosca.capabilities.Endpoint.Admin #derived from WebApplication's tosca.capabilities.Endpoint "app_endpoint"
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container.Docker #derived from WebApplication's tosca.capabilities.Container "host"
+ node: tosca.nodes.WebServer
+ relationship: tosca.relationships.HostedOn
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importAttributeSuccessFlow.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importAttributeSuccessFlow.yml
new file mode 100644
index 0000000000..0fa9a302f2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importAttributeSuccessFlow.yml
@@ -0,0 +1,53 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyComputeTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ myProp:
+ type: tosca.datatypes.Credential
+ descritpion: hey Desc
+ default:
+ "protocol" : hey1
+ "token_type" : hey2
+ "token" : hey3
+ "keys" : {"keyA" : "val1" , keyB : val2}
+ "user" : hey4
+ attributes:
+ private_address:
+ type: string
+ status: supported
+ default: myDefault
+ public_address:
+ type: string
+ networks:
+ type: map
+ default: {keyA : val1 , keyB : val2}
+ entry_schema:
+ type: string
+ ports:
+ type: tosca.datatypes.Credential
+ description: this is my description
+ default:
+ "protocol" : hey1
+ "token_type" : hey2
+ "token" : hey3
+ "keys" : {"keyA" : "val1" , keyB : val2}
+ "user" : hey4
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importCapabilityNameExistsOnParent.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importCapabilityNameExistsOnParent.yml
new file mode 100644
index 0000000000..4d6db6c8c0
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importCapabilityNameExistsOnParent.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Compute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ Binding: #"binding" exists on parent
+ type: tosca.capabilities.OperatingSystem
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateCapability.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateCapability.yml
new file mode 100644
index 0000000000..fcc3952f94
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateCapability.yml
@@ -0,0 +1,42 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ - LOCAL_Storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ Scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateRequirements.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateRequirements.yml
new file mode 100644
index 0000000000..7cab3ac590
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importDuplicateRequirements.yml
@@ -0,0 +1,40 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ - LOCAL_Storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyBadDefault.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyBadDefault.yml
new file mode 100644
index 0000000000..a3ff088a35
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyBadDefault.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.TestResource:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_prop:
+ type: list
+ description : another description
+ default:
+ - 12
+ - true
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyGoodDefault.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyGoodDefault.yml
new file mode 100644
index 0000000000..2f864a727e
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertyGoodDefault.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_prop:
+ type: list
+ description : another description
+ default:
+ - false
+ - true
+ entry_schema:
+ description: This is my property
+ type: string
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertySuccessFlow.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertySuccessFlow.yml
new file mode 100644
index 0000000000..fd52df5f9b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importListPropertySuccessFlow.yml
@@ -0,0 +1,198 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ my_boolean:
+ type: list
+ description : another description
+ default:
+ - false
+ - true
+ entry_schema:
+ description: This is my property
+ type: boolean
+ my_boolean_array:
+ type: list
+ description : another description
+ default: [ true , false ]
+ entry_schema:
+ description: This is my property
+ type: boolean
+ duplicate_boolean_values:
+ type: list
+ description : another description
+ default: [ true , false , true ]
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_null_value:
+ type: list
+ description : another description
+ default:
+ - true
+ -
+ - false
+ entry_schema:
+ description: This is my property
+ type: boolean
+ my_integers:
+ type: list
+ description : another description
+ default:
+ - 0
+ - 1000
+ - -1000
+ - 50
+ entry_schema:
+ description: This is my property
+ type: integer
+ my_integers_array:
+ type: list
+ description : another description
+ default: [ 10 , -1000, 0 ]
+ entry_schema:
+ description: This is my property
+ type: integer
+ duplicate_integers_values:
+ type: list
+ description : another description
+ default: [ 10 , 10, -1000, 0 ]
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_null_value:
+ type: list
+ description : another description
+ default:
+ - 1000
+ -
+ - 2000
+ entry_schema:
+ description: This is my property
+ type: integer
+ my_string:
+ type: list
+ description : another description
+ default:
+ - <b>asdc<b>
+ - $?^@ecomp$!#%()_-~@+*^...;;/w#
+ - uc
+ entry_schema:
+ description: This is my property
+ type: string
+ my_string_array:
+ type: list
+ description : another description
+ default: [ <b>AAA</b>, ~$~#bbb%^*_-, qwe , 1.3 , <b>500</b> , true ]
+ entry_schema:
+ description: This is my property
+ type: string
+ string_null_value:
+ type: list
+ description : another description
+ default:
+ - <b>asdc<b>
+ -
+ - uc
+ entry_schema:
+ description: This is my property
+ type: string
+ string_space_value:
+ type: list
+ description : another description
+ default:
+ - <b> asdc<b>
+ -
+ - uc
+ entry_schema:
+ description: This is my property
+ type: string
+ duplicate_string_values:
+ type: list
+ description : another description
+ default:
+ - asdc
+ - asdc
+ - uc
+ entry_schema:
+ description: This is my property
+ type: string
+ my_float:
+ type: list
+ description : another description
+ default:
+ - 6
+ - 1000.000001
+ - -3.0f
+ entry_schema:
+ description: This is my property
+ type: float
+ my_float_array:
+ type: list
+ description : another description
+ default: [ 0.01 , -5.0 , 2.1f ]
+ entry_schema:
+ description: This is my property
+ type: float
+ duplicate_float_values:
+ type: list
+ description : another description
+ default:
+ - 0.0
+ - 0.0
+ - 4.555555
+ entry_schema:
+ description: This is my property
+ type: float
+ float_no_default_values:
+ type: list
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: float
+ float_null_value:
+ type: list
+ description : another description
+ default:
+ - 6
+ -
+ - -3.0f
+ entry_schema:
+ description: This is my property
+ type: float
+ float_space_value:
+ type: list
+ description : another description
+ default:
+ - 6
+ -
+ - -3.0f
+ entry_schema:
+ description: This is my property
+ type: float
+ integer_no_default_values:
+ type: list
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: integer
+ string_no_default_values:
+ type: list
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: string
+ boolean_no_default_values:
+ type: list
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: boolean
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importMapPropertySuccessFlow.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importMapPropertySuccessFlow.yml
new file mode 100644
index 0000000000..f856603397
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importMapPropertySuccessFlow.yml
@@ -0,0 +1,452 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.LinkTest:
+ derived_from: tosca.nodes.Root
+ properties:
+ string_prop01:
+ type: map
+ description : another description
+ default: {keyA : val1 , keyB : val2}
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop02:
+ type: map
+ description : another description
+ default: {keyA : "val1" , keyB : "val2"}
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop03:
+ type: map
+ description : another description
+ default: {"keyA" : "val1" , keyB : val2}
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop04:
+ type: map
+ description : another description
+ default: {"keyA" : 10 , keyB : <b>true</b> }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop05:
+ type: map
+ description : another description
+ default: {"keyA" : , keyB : "Big" }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop06:
+ type: map
+ description : another description
+ default: {"keyA" : aaaA , keyB : null }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop07:
+ type: map
+ description : another description
+ default: {"keyA" : NULL , keyB : Null }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop08:
+ type: map
+ description : another description
+ default: {"keyA" : "" , keyB : "abcd" }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop09:
+ type: map
+ description : another description
+ default: {"keyA" : " " , keyB : "abcd" }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop10:
+ type: map
+ description : another description
+ default: {"keyA" : " aaaa" , keyB : " bbbb" }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop11:
+ type: map
+ description : another description
+ default: {"keyA" : "aaaa " , keyB : "bbbb " }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop12:
+ type: map
+ description : another description
+ default: {"keyA" : " aaaa " , keyB : " bbbb ccccc " }
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop13:
+ type: map
+ description : another description
+ default:
+ keyA : "aaaa"
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop14:
+ type: map
+ description : another description
+ default:
+ keyA : " aaaa "
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop15:
+ type: map
+ description : another description
+ default:
+ keyA : AbcD
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop16:
+ type: map
+ description : another description
+ default:
+ keyA : AbcD
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop17:
+ type: map
+ description : another description
+ default:
+ keyA : AbcD
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop18:
+ type: map
+ description : another description
+ default:
+ keyA : <b>AbcD</b>
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop19:
+ type: map
+ description : another description
+ default:
+ keyA : <b>AbcD
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop20:
+ type: map
+ description : another description
+ default:
+ keyA : aaaa
+ keya : aaaa
+ Keya : Aaaa
+ KEYA : nnnn
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop21:
+ type: map
+ description : another description
+ default:
+ keyA : NULL
+ keyB : null
+ keyC : Null
+ entry_schema:
+ description: This is my property
+ type: string
+ string_prop22:
+ type: map
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: string
+ integer_prop01:
+ type: map
+ description : another description
+ default: {keyA : 1 , keyB : 1000}
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop02:
+ type: map
+ description : another description
+ default: {keyA : Null , keyB : NULL ,keyC : null }
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop03:
+ type: map
+ description : another description
+ default: {keyA : , keyB : -600}
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop03:
+ type: map
+ description : another description
+ default: {keyA : 800 , keyB : -600}
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop04:
+ type: map
+ description : another description
+ default: {keyA : , keyB : -600}
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop05:
+ type: map
+ description : another description
+ default: {keyA : 100 , keyB : 0 }
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop06:
+ type: map
+ description : another description
+ default: {keyA : 100 , keyB : 00}
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop07:
+ type: map
+ description : another description
+ default: {keyA : 100 , keyB : 100 }
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop08:
+ type: map
+ description : another description
+ default:
+ keyA : 100
+ keyB : 200
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop09:
+ type: map
+ description : another description
+ default:
+ keyA : 100
+ keyB : 200
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop10:
+ type: map
+ description : another description
+ default:
+ keyA : null
+ keyA : Null
+ keyB : 1111
+ keyB : 2222
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop11:
+ type: map
+ description : another description
+ default:
+ keyA : null
+ keyB : Null
+ keyC : NULL
+ keyD :
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop12:
+ type: map
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: integer
+ integer_prop13:
+ type: map
+ description : another description
+ default: {keyA : 100 , keyA : 200}
+ entry_schema:
+ description: This is my property
+ type: integer
+ boolean_prop01:
+ type: map
+ description : another description
+ default: {keyA : true , keyB : false , keyC : false }
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop02:
+ type: map
+ description : another description
+ default: {keyA : TRUE , keyB : FALSE , keyC : False }
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop03:
+ type: map
+ description : another description
+ default:
+ keyA : null
+ keyB : Null
+ keyC : NULL
+ keyD :
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop04:
+ type: map
+ description : another description
+ default: {keyA : Null , keyB : NULL ,keyC : null ,keyD : }
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop05:
+ type: map
+ description : another description
+ default: {keyA : true , keyB : false , keyC : false }
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop06:
+ type: map
+ description : another description
+ default:
+ keyA : true
+ keyB : true
+ keyC : false
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop07:
+ type: map
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop08:
+ type: map
+ description : another description
+ default:
+ keyA : false
+ keyA : true
+ keyB : true
+ keyB : false
+ entry_schema:
+ description: This is my property
+ type: boolean
+ boolean_prop09:
+ type: map
+ description : another description
+ default: {keyA : true,keyA : false,keyB : false,keyB : true}
+ entry_schema:
+ description: This is my property
+ type: boolean
+ float_prop01:
+ type: map
+ description : another description
+ default: {keyA : 1.20 , keyB : 3.56f , keyC : 33}
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop02:
+ type: map
+ description : another description
+ default: {keyA : 0.00, keyB : 0.0 , keyC : 0 }
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop03:
+ type: map
+ description : another description
+ default: {keyA : null, keyB : Null , keyC : NULL , keyD : }
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop04:
+ type: map
+ description : another description
+ default: {keyA : 1.20 , keyB : 3.56f , keyC : 33 }
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop05:
+ type: map
+ description : another description
+ default:
+ keyA : 33
+ keyB : 1.2000
+ keyC : 3.607f
+ keyD : 0
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop06:
+ type: map
+ description : another description
+ default:
+ keyA : 33
+ keyB : 1.2000
+ keyC : 3.607f
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop07:
+ type: map
+ description : another description
+ default:
+ keyA : null
+ keyB : Null
+ keyC : NULL
+ keyD :
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop08:
+ type: map
+ description : another description
+ default:
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop09:
+ type: map
+ description : another description
+ default:
+ keyA : 3.5
+ keyA : 0.01
+ keyB : 3.6
+ keyB :
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop10:
+ type: map
+ description : another description
+ default: {keyA : 0.0002}
+ entry_schema:
+ description: This is my property
+ type: float
+ float_prop11:
+ type: map
+ description : another description
+ default: {keyA : 0.000 , keyA : 003.56f, keyB : 33}
+ entry_schema:
+ description: This is my property
+ type: float
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent.yml
new file mode 100644
index 0000000000..e4d626fca6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Compute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - Local_Storage:
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent_DerivedFromMyCompute1.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent_DerivedFromMyCompute1.yml
new file mode 100644
index 0000000000..7ae9552d6a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/importRequirementNameExistsOnParent_DerivedFromMyCompute1.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute2:
+ derived_from: org.openecomp.resource.MyCompute1
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - Local_Storage:
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInCapDefinition.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInCapDefinition.yml
new file mode 100644
index 0000000000..301116c985
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInCapDefinition.yml
@@ -0,0 +1,37 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+description: Template for vSCP -- connectable to OCS-FW -- temporary model for 1602 demo
+
+############################
+# The model capture four sub-components (VDUs) and their connectivity to six
+# networks.
+############################
+
+node_types:
+
+#The node type for vSCP
+#used for substitution mapping, or to describe vSCP resource in ASDC studio
+ org.openecomp.resource.vSCP-03-16:
+ derived_from: tosca.nodes.Root
+ requirements:
+ - sigtran_connection1:
+ capability: tosca.capabilities.Node
+ - sigtran_connection2:
+ capability: tosca.capabilities.Node
+ - ocs_connection:
+ capability: tosca.capabilities.Node
+ - oam_connection:
+ capability: tosca.capabilities.Node
+ - firewall:
+ capability: tosca.capabilities.Node
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: org.openecomp.capabilities.networkInterfaceNotFound \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInReqDefinition.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInReqDefinition.yml
new file mode 100644
index 0000000000..d100dafdf9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/missingCapInReqDefinition.yml
@@ -0,0 +1,25 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+description: Template for vSCP -- connectable to OCS-FW -- temporary model for 1602 demo
+
+############################
+# The model capture four sub-components (VDUs) and their connectivity to six
+# networks.
+############################
+
+node_types:
+
+#The node type for vSCP
+#used for substitution mapping, or to describe vSCP resource in ASDC studio
+ org.openecomp.resource.vSCP-03-16:
+ derived_from: tosca.nodes.Root
+ requirements:
+ - sigtran_connection1:
+ capability: org.openecomp.capabilities.networkInterfaceNotFound
+ - sigtran_connection2:
+ capability: tosca.capabilities.Node
+ - ocs_connection:
+ capability: tosca.capabilities.Node
+ - oam_connection:
+ capability: tosca.capabilities.Node
+ - firewall:
+ capability: tosca.capabilities.Node \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildCompute_NoReqCap.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildCompute_NoReqCap.yml
new file mode 100644
index 0000000000..cc5b202bc7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildCompute_NoReqCap.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyChildCompute:
+ derived_from: org.openecomp.resource.MyFatherCompute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildWebApp_DerivedFromContainer.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildWebApp_DerivedFromContainer.yml
new file mode 100644
index 0000000000..b7859d4c14
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myChildWebApp_DerivedFromContainer.yml
@@ -0,0 +1,15 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyChildWebApp:
+ derived_from: org.openecomp.resource.MyWebApp
+ properties:
+ context_root:
+ type: string
+ capabilities:
+ app_endpoint:
+ type: tosca.capabilities.Endpoint
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.WebServer
+ relationship: tosca.relationships.HostedOn \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myCompute.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myCompute.yml
new file mode 100644
index 0000000000..98bf9b7902
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myCompute.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeDerivedFromNotExists.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeDerivedFromNotExists.yml
new file mode 100644
index 0000000000..2b2807395a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeDerivedFromNotExists.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.RootNotExists
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectDefenitionVersionValue.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectDefenitionVersionValue.yml
new file mode 100644
index 0000000000..2fa3ad0c08
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectDefenitionVersionValue.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: toscaSimpleYaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectNameSpaceFormat.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectNameSpaceFormat.yml
new file mode 100644
index 0000000000..d1a613fff2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeIncorrectNameSpaceFormat.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource2.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeNoDefenitionVersion.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeNoDefenitionVersion.yml
new file mode 100644
index 0000000000..8084d049db
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeNoDefenitionVersion.yml
@@ -0,0 +1,34 @@
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeOccurencySuccess.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeOccurencySuccess.yml
new file mode 100644
index 0000000000..40ae610c06
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeOccurencySuccess.yml
@@ -0,0 +1,77 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [1, UNBOUNDED]
+ - local_storage200:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [1, 1]
+ - local_storage300:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [1, 10]
+ - local_storage400:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [1, 10000000]
+ - local_storage500:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [2, 3]
+ - local_storageNoOccurrences600:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpointNoOccurrence :
+ type: tosca.capabilities.Endpoint.Admin
+ endpoint200 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [1, 2]
+ endpoint300 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [1, 1]
+ endpoint400 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [1, 10]
+ endpoint500 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [1, 10000000]
+ endpoint600 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [1, UNBOUNDED ]
+ endpoint700 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [2, 4 ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeParssingFalure.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeParssingFalure.yml
new file mode 100644
index 0000000000..b243add14a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeParssingFalure.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requiremens:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilitis:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeReqNameExistsOnDerived.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeReqNameExistsOnDerived.yml
new file mode 100644
index 0000000000..43d92d1681
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeReqNameExistsOnDerived.yml
@@ -0,0 +1,34 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute1:
+ derived_from: tosca.nodes.Compute
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - Local_Storage: #"local_storage" exists on parent
+ capability: tosca.capabilities.Endpoint
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeVF.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeVF.yml
new file mode 100644
index 0000000000..90e771dab1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeVF.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.VF.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithNodeTypesTwice.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithNodeTypesTwice.yml
new file mode 100644
index 0000000000..73b201eab4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithNodeTypesTwice.yml
@@ -0,0 +1,42 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
+
+ org.openecomp.resource.example.TransactionSubsystem:
+ derived_from: tosca.nodes.Root
+ capabilities:
+ message_receiver: tosca.capabilities.Endpoint
+ requirements:
+ - database_endpoint: tosca.capabilities.Endpoint.Database \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithTopologyTemplate.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithTopologyTemplate.yml
new file mode 100644
index 0000000000..c451eb2514
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myComputeWithTopologyTemplate.yml
@@ -0,0 +1,44 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+topology_template:
+ description: Template of an application connecting to a database.
+
+ node_templates:
+ web_app:
+ type: tosca.nodes.WebApplication.MyWebApp
+ requirements:
+ - host: web_server
+ - database_endpoint: db
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myFatherWebApp_derviedFromDocker.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myFatherWebApp_derviedFromDocker.yml
new file mode 100644
index 0000000000..43a9a174f8
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myFatherWebApp_derviedFromDocker.yml
@@ -0,0 +1,16 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyWebApp:
+ derived_from: tosca.nodes.WebApplication
+ properties:
+ context_root:
+ type: string
+ capabilities:
+ app_endpoint:
+ type: tosca.capabilities.Endpoint
+ requirements:
+ - HOSt:
+ capability: tosca.capabilities.Container.Docker
+ node: tosca.nodes.WebServer
+ relationship: tosca.relationships.HostedOn
+ occurrences: [ 1, 2 ]
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myLinkVL.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myLinkVL.yml
new file mode 100644
index 0000000000..7c796d2801
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myLinkVL.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vl.MyLink:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myPortCP.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myPortCP.yml
new file mode 100644
index 0000000000..ff255f2394
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/myPortCP.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.cp.MyPort:
+ derived_from: org.openecomp.resource.cp.Port
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.network.Bindable
+ node: org.openecomp.resource.vl.MyLink
+ relationship: tosca.relationships.BindTo
+ occurrences: [0, UNBOUNDED]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/noContent.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/noContent.yml
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/noContent.yml
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure01.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure01.yml
new file mode 100644
index 0000000000..f007a0fed2
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure01.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [2, 0]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure02.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure02.yml
new file mode 100644
index 0000000000..0487b63cb3
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure02.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [-1, 2]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure03.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure03.yml
new file mode 100644
index 0000000000..7afdffa59d
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure03.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [1, -2]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure04.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure04.yml
new file mode 100644
index 0000000000..f8a582f401
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure04.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ , 2]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure05.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure05.yml
new file mode 100644
index 0000000000..f1c6a93e1f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure05.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ 1, ]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure06.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure06.yml
new file mode 100644
index 0000000000..b0ef54b0eb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure06.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ 0 , 0 ]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure07.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure07.yml
new file mode 100644
index 0000000000..afd999f575
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure07.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ @ , 1 ]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure08.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure08.yml
new file mode 100644
index 0000000000..60efc99273
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure08.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ 1.0 , 2.0 ]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure09.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure09.yml
new file mode 100644
index 0000000000..d6ec7eabe6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure09.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ "1" , "2" ]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure10.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure10.yml
new file mode 100644
index 0000000000..27de429186
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure10.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ ]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure11.yml
new file mode 100644
index 0000000000..5bdae3a5f5
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure11.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences: [ UNBOUNDED , UNBOUNDED ]
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure31.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure31.yml
new file mode 100644
index 0000000000..8c3034afce
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure31.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ 2, 1]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure32.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure32.yml
new file mode 100644
index 0000000000..4b5eba9110
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure32.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ -1, 2]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure33.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure33.yml
new file mode 100644
index 0000000000..9c42e22aa1
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure33.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ 1, -2]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure34.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure34.yml
new file mode 100644
index 0000000000..49953b5834
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure34.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ , 2]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure35.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure35.yml
new file mode 100644
index 0000000000..8d8985d7f7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure35.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ 1 , ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure36.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure36.yml
new file mode 100644
index 0000000000..12944507f6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure36.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ 0 , 0 ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure37.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure37.yml
new file mode 100644
index 0000000000..618c980e16
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure37.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ 0 , # ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure38.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure38.yml
new file mode 100644
index 0000000000..d0c4575c83
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure38.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ 1.0 , 2.0 ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure39.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure39.yml
new file mode 100644
index 0000000000..024338d380
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure39.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ "1" , "2" ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure40.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure40.yml
new file mode 100644
index 0000000000..a4a32ba772
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure40.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure41.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure41.yml
new file mode 100644
index 0000000000..c3024a3ee4
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/occurencyFalure41.yml
@@ -0,0 +1,35 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.MyCompute:
+ derived_from: tosca.nodes.Root
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.NetworkInfo
+ ports:
+ type: map
+ entry_schema:
+ type: tosca.datatypes.network.PortInfo
+ requirements:
+ - local_storage100:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [tosca.nodes.SoftwareComponent]
+ endpoint100 :
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences: [ UNBOUNDED, UNBOUNDED ]
+ os:
+ type: tosca.capabilities.OperatingSystem
+ scalable:
+ type: tosca.capabilities.Scalable
+ binding:
+ type: tosca.capabilities.network.Bindable \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq11.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq11.yml
new file mode 100644
index 0000000000..b9bda183e6
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq11.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vfc.vfc4:
+ derived_from: tosca.nodes.Root
+ properties:
+ # domain-specific software component version
+ component_version:
+ type: version
+ required: false
+ admin_credential:
+ type: tosca.datatypes.Credential
+ required: false
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ relationship: tosca.relationships.HostedOn
+ occurrences: [1, 1]
diff --git a/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq12.yml b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq12.yml
new file mode 100644
index 0000000000..9676bcdb6c
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/importToscaResourceByCreateUrl/softwareComponentReq12.yml
@@ -0,0 +1,17 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vfc.vfc1:
+ derived_from: tosca.nodes.Root
+ properties:
+ # domain-specific software component version
+ component_version:
+ type: version
+ required: false
+ admin_credential:
+ type: tosca.datatypes.Credential
+ required: false
+ requirements:
+ - host:
+ capability: tosca.capabilities.Container
+ relationship: tosca.relationships.HostedOn
+ occurrences: [1, 2]
diff --git a/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topology.txt b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topology.txt
new file mode 100644
index 0000000000..f46af26605
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topology.txt
@@ -0,0 +1 @@
+{"id":"c25811fc-e03f-401d-93ca-45d9bd312703","delegateId":"17710a88-f3d8-483d-aded-afee2906a8c1","delegateType":"topologytemplate","dependencies":[{"name":"tosca-normative-types-softwareComponent","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-webServer","version":"1.0.0.wd03-SNAPSHOT"},{"name":"apache-type","version":"2.0.0-SNAPSHOT"},{"name":"tosca-normative-types-compute","version":"1.0.0.wd03-SNAPSHOT"},{"name":"tosca-normative-types-root","version":"1.0.0.wd03-SNAPSHOT"}],"nodeTemplates":[{"key":"Compute_2","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}},{"key":"Apache","value":{"type":"alien.nodes.Apache","name":null,"properties":{"port":"80","document_root":"/var/www","version":"2.4"},"attributes":{"tosca_id":null,"tosca_name":null},"relationships":{"attachToCompute_2":{"type":"tosca.relationships.AttachTo","target":"Compute_2","requirementName":"dependency","requirementType":"tosca.capabilities.Root","targetedCapabilityName":"attach"}},"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"host":{"type":"tosca.nodes.Compute","properties":null}},"capabilities":{"secure_endpoint":{"type":"tosca.capabilities.Endpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"app_endpoint":{"type":"tosca.capabilities.Endpoint","properties":{"port":null,"protocol":{"value":"tcp","definition":false},"url_path":null,"secure":{"value":"false","definition":false}}},"host":{"type":"alien.capabilities.ApacheContainer","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null}},"artifacts":null}},{"key":"Compute","value":{"type":"tosca.nodes.Compute","name":null,"properties":{"disk_size":null,"num_cpus":null,"os_distribution":null,"os_arch":null,"mem_size":null,"os_type":null,"os_version":null},"attributes":{"ip_address":null,"tosca_id":null,"tosca_name":null},"relationships":null,"requirements":{"dependency":{"type":"tosca.capabilities.Root","properties":null},"network":{"type":"tosca.capabilities.Connectivity","properties":null}},"capabilities":{"host":{"type":"tosca.capabilities.Container","properties":{"valid_node_types":null}},"root":{"type":"tosca.capabilities.Root","properties":null},"attach":{"type":"tosca.capabilities.Attachment","properties":null},"scalable":{"type":"tosca.capabilities.Scalable","properties":{"max_intances":{"value":"1","definition":false},"default_instances":{"value":"1","definition":false},"min_intances":{"value":"1","definition":false}}}},"artifacts":null}}]} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topologyTemplate.txt b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topologyTemplate.txt
new file mode 100644
index 0000000000..f3fdf0297b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/testCsarAPI/topologyTemplate.txt
@@ -0,0 +1 @@
+{"id":"17710a88-f3d8-483d-aded-afee2906a8c1","name":"MichaelTest2","description":null,"topologyId":"c25811fc-e03f-401d-93ca-45d9bd312703"} \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool10_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool10_false.yaml
new file mode 100644
index 0000000000..b6faadd4f9
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool10_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: NO
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool11_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool11_false.yaml
new file mode 100644
index 0000000000..7fb2923b04
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool11_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: 0
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool12_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool12_false.yaml
new file mode 100644
index 0000000000..fd451aa3af
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool12_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: OFF
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool1_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool1_true.yaml
new file mode 100644
index 0000000000..a253e4c8d7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool1_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: t
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool2_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool2_true.yaml
new file mode 100644
index 0000000000..ce273b3522
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool2_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: true
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool3_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool3_true.yaml
new file mode 100644
index 0000000000..4680eb6996
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool3_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: on
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool4_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool4_true.yaml
new file mode 100644
index 0000000000..1ed7781831
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool4_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: y
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool5_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool5_true.yaml
new file mode 100644
index 0000000000..c0b42e6288
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool5_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: yes
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool6_true.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool6_true.yaml
new file mode 100644
index 0000000000..24b862b751
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool6_true.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: 1
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool7_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool7_false.yaml
new file mode 100644
index 0000000000..7bad8efd6f
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool7_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: F
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool8_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool8_false.yaml
new file mode 100644
index 0000000000..8b35e2adf7
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool8_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: FALSE
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool9_false.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool9_false.yaml
new file mode 100644
index 0000000000..2768e0d480
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_bool9_false.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: N
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number1.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number1.yaml
new file mode 100644
index 0000000000..fc7f84ca81
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: number
+ description: city name
+ default: 12
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number2.yaml b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number2.yaml
new file mode 100644
index 0000000000..28ec3358be
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/tmp/positive_artifact_number2.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: number
+ description: city name
+ default: 12.12
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png
new file mode 100644
index 0000000000..8e02f49b7b
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/images/mysql.png
Binary files differ
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml
new file mode 100644
index 0000000000..a2eb4d423a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/mysql.yml
@@ -0,0 +1,85 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
+description: MySQL RDBMS installation on a specific mounted volume path.
+template_name: mysql-uploadComponent
+template_version: 1.1.1-SNAPSHOT
+template_author: FastConnect
+
+imports:
+ - "tosca-normative-types-root:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-compute:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-database:1.0.0.wd03-SNAPSHOT"
+ - "tosca-normative-types-DBMS:1.0.0.wd03-SNAPSHOT"
+
+node_types:
+ alien.nodes.Mysql-uploadComponent:
+ derived_from: tosca.nodes.Database
+ description: >
+ A node to install MySQL v5.5 database with data
+ on a specific attached volume.
+ capabilities:
+ host:
+ type: alien.capabilities.MysqlDatabase
+ properties:
+ valid_node_types: [ tosca.nodes.WebApplication ]
+ requirements:
+ - host: tosca.nodes.Compute
+ type: tosca.relationships.HostedOn
+ tags:
+ icon: /images/mysql.png
+ properties:
+ db_port:
+ type: integer
+ default: 3306
+ description: The port on which the underlying database service will listen to data.
+ db_name:
+ type: string
+ required: true
+ default: wordpress
+ description: The logical name of the database.
+ db_user:
+ type: string
+ default: pass
+ description: The special user account used for database administration.
+ db_password:
+ type: string
+ default: pass
+ description: The password associated with the user account provided in the ‘db_user’ property.
+ bind_address:
+ type: boolean
+ default: true
+ required: false
+ description: If true,the server accepts TCP/IP connections on all server host IPv4 interfaces.
+ storage_path:
+ type: string
+ default: /mountedStorage
+ constraints:
+ - valid_values: [ "/mountedStorage", "/var/mysql" ]
+ interfaces:
+ Standard:
+ create: scripts/install_mysql.sh
+ start:
+ inputs:
+ VOLUME_HOME: { get_property: [SELF, storage_path] }
+ PORT: { get_property: [SELF, db_port] }
+ DB_NAME: { get_property: [SELF, db_name] }
+ DB_USER: { get_property: [SELF, db_user] }
+ DB_PASSWORD: { get_property: [SELF, db_password] }
+ BIND_ADRESS: { get_property: [SELF, bind_address] }
+ implementation: scripts/start_mysql.sh
+ fastconnect.cloudify.extensions:
+ start_detection:
+ inputs:
+ PORT: { get_property: [SELF, db_port] }
+ implementation: scripts/mysql_start_detection.groovy
+ artifacts:
+ - scripts: scripts
+ type: tosca.artifacts.File
+
+capability_types:
+ alien.capabilities.MysqlDatabase:
+ derived_from: tosca.capabilities.Container
+
+artifact_types:
+ tosca.artifacts.GroovyScript:
+ description: A groovy script (.groovy file)
+ file_ext: [groovy]
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
new file mode 100644
index 0000000000..400bcf40cb
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/install_mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo "Debian based MYSQL install 5..."
+LOCK="/tmp/lockaptget"
+
+while true; do
+ if mkdir "${LOCK}" &>/dev/null; then
+ echo "MySQL take the lock"
+ break;
+ fi
+ echo "Waiting the end of one of our recipes..."
+ sleep 0.5
+done
+
+while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do
+ echo "Waiting for other software managers to finish..."
+ sleep 0.5
+done
+sudo rm -f /var/lib/dpkg/lock
+
+sudo apt-get update || (sleep 15; sudo apt-get update || exit ${1})
+sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server-5.5 pwgen || exit ${1}
+rm -rf "${LOCK}"
+
+sudo /etc/init.d/mysql stop
+sudo rm -rf /var/lib/apt/lists/*
+sudo rm -rf /var/lib/mysql/*
+echo "MySQL Installation complete." \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/artifact_unsupported.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/artifact_unsupported.yaml
new file mode 100644
index 0000000000..764b8d4c58
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/artifact_unsupported.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: number123
+ description: city name
+ default: 12.12
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool1.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool1.yaml
new file mode 100644
index 0000000000..19119f3d9a
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: K
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool2.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool2.yaml
new file mode 100644
index 0000000000..f9c09a4fed
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_bool2.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: boolean
+ description: city name
+ default: 11
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number1.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number1.yaml
new file mode 100644
index 0000000000..9a489879cc
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: number
+ description: city name
+ default: 1.2Noo
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number2.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number2.yaml
new file mode 100644
index 0000000000..4c0e07affc
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_number2.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: number
+ description: city name
+ default: 1 2 3
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
diff --git a/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_string1.yaml b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_string1.yaml
new file mode 100644
index 0000000000..f52ef04712
--- /dev/null
+++ b/test-apis-ci/src/test/resources/CI/tests/yamlFieldsValidation/negative_artifact_string1.yaml
@@ -0,0 +1,140 @@
+heat_template_version: 2013-05-23
+#################################
+#
+# Changes in v0.2:
+# - Unique availability zone for each VM
+# - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
+# - 2 DB VMs added
+# - Images corrected
+# - VM start-up order: SMP->DB->BE->FE (no error handling yet)
+# - Provisioning scripts placeholders
+#
+#################################
+
+description: ASC Template
+
+parameters:
+ city_name:
+ type: string
+ description: city name
+ default: שלום
+ address:
+ type: string
+ description: address
+ default: Alonim
+ home_number:
+ type: number
+ description: home_number
+ default: 8
+resources:
+# scp_be_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_be_wait_handle }
+# count: 5
+# timeout: 300
+# scp_be_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# scp_fe_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: scp_fe_wait_handle }
+# count: 2
+# timeout: 300
+# scp_fe_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# smp_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: smp_wait_handle }
+# count: 2
+# timeout: 300
+# smp_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+#
+# db_wait_condition:
+# type: OS::Heat::WaitCondition
+# properties:
+# handle: { get_resource: db_wait_handle }
+# count: 2
+# timeout: 300
+# db_wait_handle:
+# type: OS::Heat::WaitConditionHandle
+
+ FE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ BE_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ SMP_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+ DB_Affinity:
+ type: OS::Nova::ServerGroup
+ properties:
+ policies: ["anti-affinity"]
+
+ FE_Clustering_KA:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_fe_cluster_net_id }
+
+ FE_Clustering_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: FE_Clustering_KA }
+ cidr: { get_param: int_vscp_fe_cluster_cidr }
+
+ Clustering_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_cluster_net_id }
+
+ Clustering_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Clustering_Network }
+ cidr: { get_param: int_vscp_cluster_cidr }
+
+ DB_Network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: int_vscp_db_network_net_id }
+
+ DB_Network_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: DB_Network }
+ cidr: { get_param: int_vscp_db_network_cidr }
+
+ server_scp_be0:
+ type: OS::Nova::Server
+# depends on: db_wait_condition
+ properties:
+ name: { get_param: vm_scp_be0_name }
+ image: { get_param: image_scp_be_id }
+# availability_zone: { get_param: availability_zone_be0 }
+ flavor: { get_param: flavor_scp_be_id }
+ scheduler_hints: { group: { get_resource: BE_Affinity } }
+ networks:
+ - port: { get_resource: be0_port_3 }
+ - port: { get_resource: be0_port_4 }
+ - port: { get_resource: be0_port_5 }
+ - port: { get_resource: be0_port_7 }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+ #todo: provision $vm_name
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+ params:
+ $vm_name: {get_param: vm_scp_be0_name}
+# wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }