VLAN tagging - Pattern 1A, 1C1 89/32489/6
authorojasdubey <ojas.dubey@amdocs.com>
Thu, 22 Feb 2018 09:02:06 +0000 (14:32 +0530)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Wed, 28 Feb 2018 09:56:30 +0000 (09:56 +0000)
1. Implementation for supporting VLAN
   tagging in Pattern 1A and 1C1 heats
2. Updated code for switch case refactor with
   command design pattern
3. Added unit tests and bug fixes

Change-Id: I54938ffd6673f865b4506a890ec8e7b9c54597b1
Issue-ID: SDC-1036
Signed-off-by: ojasdubey <ojas.dubey@amdocs.com>
248 files changed:
common/openecomp-tosca-datatype/src/main/java/org/openecomp/sdc/tosca/datatypes/model/PropertyType.java
openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/HeatConstants.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/UnifiedCompositionData.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/UnifiedCompositionEntity.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/CommandImplNames.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/UnifiedSubstitutionNodeTemplateIdGenerator.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/ComputeNewNodeTemplateIdGenerator.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/PortNewNodeTemplateIdGenerator.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/SubInterfaceNewNodeTemplateIdGenerator.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/to/UnifiedCompositionTo.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortTemplateConsolidationData.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationEntityType.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationService.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/Constants.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/HeatToToscaUtil.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionUtil.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/helper/ContrailV2VirtualMachineInterfaceHelper.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImpl.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationBase.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2VmInterfaceImpl.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNestedImpl.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerImpl.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImpl.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VlanToInterfaceResourceConnectionTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/ComputeNewNodeTemplateIdGeneratorTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/PortNewNodeTemplateIdGeneratorTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_1_perimeta_swmu_a_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_1_perimeta_swmu_b_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_2_perimeta_sw_a_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/module_2_perimeta_sw_b_childServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedwithoutNodeTemplates/expectedoutputfiles/vlan_subinterface_dualServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedAddOn/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedAddOn/expectedoutputfiles/addOnServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedAddOn/inputfiles/main.yml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles/MainServiceTemplate.yaml [deleted file]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles/hot_templateServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/inputfiles/base_hot_template.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/inputfiles/hot_template.yml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/expectedoutputfiles/vmme_vlcServiceTemplate.yaml [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/expectedoutputfiles/MainServiceTemplate.yaml with 52% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/inputfiles/base_vmme_vlc.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/expectedoutputfiles/vmme_vlcServiceTemplate.yaml [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/expectedoutputfiles/MainServiceTemplate.yaml with 52% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/inputfiles/base_vmme_vlc.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/expectedoutputfiles/MainServiceTemplate.yaml [deleted file]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/expectedoutputfiles/vmme_vlcServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/inputfiles/base_vmme_vlc.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/expectedoutputfiles/vmme_vlcServiceTemplate.yaml [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/expectedoutputfiles/MainServiceTemplate.yaml with 52% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/inputfiles/base_vmme_vlc.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/expectedoutputfiles/vmme_vlcServiceTemplate.yaml [moved from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/expectedoutputfiles/MainServiceTemplate.yaml with 50% similarity]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/inputfiles/base_vmme_vlc.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles/MainServiceTemplate.yaml [deleted file]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles/hot_templateServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/inputfiles/base_hot_template.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/inputfiles/hot_template.yml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/expectedoutputfiles/hot_templateServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/inputfiles/base_hot_template.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/expectedoutputfiles/hot_templateServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/inputfiles/base_hot_template.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/duplicateResourceIdsInDiffAddOnFiles/in/module_8_lb1_vota.yml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/duplicateResourceIdsInDiffAddOnFiles/in/module_9_lb2_vota.yml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested2ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrIn/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOut/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortGetAttrOutComputePort/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedIn/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOutputParamGetAttrIn/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/vlan1.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/vlan2.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/vlan1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/vlan2ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/vlan1.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/vlan2.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/vlan1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/vlan2ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested2.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested3.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/nested3ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/vlan1.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/vlan1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/vlan1.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/vlan2.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/vlan1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/vlan2ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/vlan1.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/vlan1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrOnlyResourceName/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrOnlyResourceName/inputfiles/ep-jsa_net.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/expectedoutputfiles/MainServiceTemplate.yaml [deleted file]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/expectedoutputfiles/ep-jsa_netServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/inputfiles/base_ep-jsa_net.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/expectedoutputfiles/firstnet_fgi_frwlServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/inputfiles/MANIFEST.json
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/inputfiles/base_firstnet_fgi_frwl.yml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/inputfiles/firstnet_fgi_frwl.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/nested/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/nested/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/nested/expectedoutputfiles/nestedServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/nested/inputfiles/main.yml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/nestedMultiLevels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/nestedMultiLevels/expectedoutputfiles/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/nestedMultiLevels/expectedoutputfiles/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java

index bebf6d3..02c4b7f 100644 (file)
@@ -1,28 +1,26 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.tosca.datatypes.model;
 
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 
 public enum PropertyType {
 
@@ -39,6 +37,8 @@ public enum PropertyType {
 
   private static final Map<String, PropertyType> mMap =
       Collections.unmodifiableMap(initializeMapping());
+  private static final Set<String> simplePropertyTypes =
+      Collections.unmodifiableSet(initializeSimplePropertyTypes());
   private String displayName;
 
   PropertyType(String displayName) {
@@ -51,7 +51,7 @@ public enum PropertyType {
    * @return Map
    */
   public static Map<String, PropertyType> initializeMapping() {
-    Map<String, PropertyType> typeMap = new HashMap<String, PropertyType>();
+    Map<String, PropertyType> typeMap = new HashMap<>();
     for (PropertyType v : PropertyType.values()) {
       typeMap.put(v.displayName, v);
     }
@@ -60,7 +60,7 @@ public enum PropertyType {
 
   /**
    * Get Property type by display name.
-   * @param displayName.
+   * @param displayName
    * @return PropertyType
    */
   public static PropertyType getPropertyTypeByDisplayName(String displayName) {
@@ -73,6 +73,19 @@ public enum PropertyType {
     return null;
   }
 
+  private static Set<String> initializeSimplePropertyTypes() {
+    Set<String> simplePropertyTypes = new HashSet<>(4);
+    simplePropertyTypes.add(STRING.getDisplayName().toLowerCase());
+    simplePropertyTypes.add(INTEGER.getDisplayName().toLowerCase());
+    simplePropertyTypes.add(FLOAT.getDisplayName().toLowerCase());
+    simplePropertyTypes.add(BOOLEAN.getDisplayName().toLowerCase());
+    return simplePropertyTypes;
+  }
+
+  public static Set<String> getSimplePropertyTypes() {
+    return simplePropertyTypes;
+  }
+
   public String getDisplayName() {
     return displayName;
   }
index 91f36a1..bc91b7d 100644 (file)
@@ -1,21 +1,17 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.heat.services;
@@ -27,8 +23,9 @@ public class HeatConstants {
   public static final String INDEX_PROPERTY_NAME = "index_var";
   public static final String SERVICE_SCALING_PROPERTY_NAME = "service_scaling";
   public static final String INSTANCE_UUID_PROPERTY_NAME = "instance_uuid";
-  public static final String VOLUME_ID_PROPERTY_NAME = "volume_id";
   public static final String RESOURCE_DEF_PROPERTY_NAME = "resource_def";
+  public static final String RESOURCE_DEF_PROPERTIES = "properties";
+  public static final String RESOURCE_DEF_TYPE_PROPERTY_NAME = "type";
   public static final String SCALE_OUT_PROPERTY_NAME = "scale_out";
   public static final String INTERFACE_LIST_PROPERTY_NAME = "interface_list";
   public static final String VIRTUAL_NETWORK_PROPERTY_NAME = "virtual_network";
@@ -52,8 +49,12 @@ public class HeatConstants {
   public static final String PORT_SECURITY_ENABLED_PROPERTY_NAME = "port_security_enabled";
   public static final String SHARED_PROPERTY_NAME = "shared";
   public static final String ADMIN_STATE_UP_PROPERTY_NAME = "admin_state_up";
-
   public static final String CONTRAIL_RESOURCE_PREFIX = "OS::Contrail::";
   public static final String CONTRAIL_V2_RESOURCE_PREFIX = "OS::ContrailV2::";
+  public static final int DEFAULT_NESTED_HEAT_RESOURCE_COUNT = 1;
+
+  private HeatConstants() {
+    //Hide the implicit constructor
+  }
 
 }
index 6f77f22..8175072 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
 
 package org.openecomp.sdc.translator.datatypes.heattotosca;
 
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.ListMultimap;
 import org.apache.commons.collections.MapUtils;
 import org.openecomp.config.api.Configuration;
 import org.openecomp.config.api.ConfigurationManager;
@@ -92,6 +94,9 @@ public class TranslationContext {
 
   private Set<String> nodeTemplateIdsPointingToStWithoutNodeTemplates = new HashSet<>();
 
+  //Key - service template name, value - Map of key: node template id, value: proerties with %index%
+  private Map<String, ListMultimap<String, String>> indexVarProperties = new HashMap<>();
+
   static {
     Configuration config = ConfigurationManager.lookup();
     translationMapping =
@@ -171,6 +176,25 @@ public class TranslationContext {
         .addCleanedNodeTemplate(nodeTemplateId, unifiedCompositionEntity, nodeTemplate);
   }
 
+  public Optional<List<String>> getIndexVarProperties(String serviceTemplateName,
+                                    String nodeTemplateId) {
+    ListMultimap<String, String> serviceTemplateIndexVarProperties = this.indexVarProperties
+        .get(serviceTemplateName);
+    if (Objects.nonNull(serviceTemplateIndexVarProperties)) {
+      return Optional.of(this.indexVarProperties.get(serviceTemplateName).get(nodeTemplateId));
+    }
+    return Optional.empty();
+  }
+
+  public void addIndexVarProperties(String serviceTemplateName,
+                                     String nodeTemplateId,
+                                     List<String> indexVarProperties) {
+    this.indexVarProperties.putIfAbsent(serviceTemplateName, ArrayListMultimap.create());
+    this.indexVarProperties
+        .get(serviceTemplateName)
+        .putAll(nodeTemplateId, indexVarProperties);
+  }
+
   public NodeTemplate getCleanedNodeTemplate(String serviceTemplateName,
                                              String nodeTemplateId) {
     return this.unifiedSubstitutionData.get(serviceTemplateName)
index a363539..08db3be 100644 (file)
@@ -1,8 +1,25 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition;
 
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -20,6 +37,7 @@ public class UnifiedCompositionData {
    */
   private List<PortTemplateConsolidationData> portTemplateConsolidationDataList;
 
+  private List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList;
 
   private NestedTemplateConsolidationData nestedTemplateConsolidationData;
 
@@ -74,6 +92,26 @@ public class UnifiedCompositionData {
     this.portTemplateConsolidationDataList.add(portTemplateConsolidationData);
   }
 
+  /**
+   * Gets sub interface template consolidation data list.
+   *
+   * @return the sub interface template consolidation data list
+   */
+  public List<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationDataList() {
+    return subInterfaceTemplateConsolidationDataList;
+  }
+
+  /**
+   * Sets sub interface template consolidation data list.
+   *
+   * @param subInterfaceTemplateConsolidationDataList the sub interface template consolidation data
+   *                                                  list
+   */
+  public void setSubInterfaceTemplateConsolidationDataList(
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList) {
+    this.subInterfaceTemplateConsolidationDataList = subInterfaceTemplateConsolidationDataList;
+  }
+
   /**
    * Gets nested template consolidation data.
    *
index d0bb826..58a9092 100644 (file)
@@ -1,8 +1,35 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition;
 
 public enum UnifiedCompositionEntity {
-  Compute,
-  Port,
-  Nested,
-  Other;
+  COMPUTE("Compute"),
+  PORT("Port"),
+  NESTED("Nested"),
+  SUB_INTERFACE("SubInterface"),
+  OTHER("Other");
+
+  private String displayName;
+
+  UnifiedCompositionEntity(String displayName) {
+    this.displayName = displayName;
+  }
+
+  public String getDisplayName() {
+    return displayName;
+  }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/CommandImplNames.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/CommandImplNames.java
new file mode 100644 (file)
index 0000000..8fa2c74
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands;
+
+public class CommandImplNames {
+
+  private static final String COMMANDS_IMPL_BASE_PACKAGE =
+      "org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl";
+
+  public static final String COMPUTE_NEW_NODE_TEMPLATE_ID_GENERATOR_IMPL =
+      COMMANDS_IMPL_BASE_PACKAGE + ".ComputeNewNodeTemplateIdGenerator";
+  public static final String PORT_NEW_NODE_TEMPLATE_ID_GENERATOR_IMPL =
+      COMMANDS_IMPL_BASE_PACKAGE + ".PortNewNodeTemplateIdGenerator";
+  public static final String SUB_INTERFACE_NEW_NODE_TEMPLATE_ID_GENERATOR_IMPL =
+      COMMANDS_IMPL_BASE_PACKAGE + ".SubInterfaceNewNodeTemplateIdGenerator";
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/UnifiedSubstitutionNodeTemplateIdGenerator.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/UnifiedSubstitutionNodeTemplateIdGenerator.java
new file mode 100644 (file)
index 0000000..a932859
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands;
+
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+
+import java.util.Optional;
+
+public interface UnifiedSubstitutionNodeTemplateIdGenerator {
+  public Optional<String> generate(UnifiedCompositionTo unifiedCompositionTo, String originalNodeTemplateId);
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/ComputeNewNodeTemplateIdGenerator.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/ComputeNewNodeTemplateIdGenerator.java
new file mode 100644 (file)
index 0000000..c39a26c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl;
+
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil;
+
+import java.util.Optional;
+
+public class ComputeNewNodeTemplateIdGenerator implements UnifiedSubstitutionNodeTemplateIdGenerator {
+
+  @Override
+  public Optional<String> generate(UnifiedCompositionTo unifiedCompositionTo, String originalNodeTemplateId) {
+    return Optional.ofNullable(UnifiedCompositionUtil.getNewComputeNodeTemplateId(
+        unifiedCompositionTo.getServiceTemplate(), originalNodeTemplateId));
+  }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/PortNewNodeTemplateIdGenerator.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/PortNewNodeTemplateIdGenerator.java
new file mode 100644 (file)
index 0000000..e70ac16
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl;
+
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getConnectedComputeConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewPortNodeTemplateId;
+
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
+
+import java.util.Objects;
+import java.util.Optional;
+
+public class PortNewNodeTemplateIdGenerator implements UnifiedSubstitutionNodeTemplateIdGenerator {
+
+  @Override
+  public Optional<String> generate(UnifiedCompositionTo unifiedCompositionTo, String originalNodeTemplateId) {
+    ComputeTemplateConsolidationData connectedComputeConsolidationData =
+        getConnectedComputeConsolidationData(unifiedCompositionTo.getUnifiedCompositionDataList(),
+            originalNodeTemplateId);
+    if (Objects.nonNull(connectedComputeConsolidationData)) {
+      NodeTemplate connectedComputeNodeTemplate = DataModelUtil.getNodeTemplate(unifiedCompositionTo
+              .getServiceTemplate(), connectedComputeConsolidationData.getNodeTemplateId());
+      return Optional.of(getNewPortNodeTemplateId(originalNodeTemplateId, connectedComputeNodeTemplate.getType(),
+          connectedComputeConsolidationData));
+    }
+    return Optional.empty();
+  }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/SubInterfaceNewNodeTemplateIdGenerator.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/commands/impl/SubInterfaceNewNodeTemplateIdGenerator.java
new file mode 100644 (file)
index 0000000..5aafa1a
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl;
+
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getConnectedComputeConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewSubInterfaceNodeTemplateId;
+
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+public class SubInterfaceNewNodeTemplateIdGenerator implements UnifiedSubstitutionNodeTemplateIdGenerator {
+
+  @Override
+  public Optional<String> generate(UnifiedCompositionTo unifiedCompositionTo, String originalNodeTemplateId) {
+    SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData =
+        getSubInterfaceTemplateConsolidationDataById(unifiedCompositionTo.getUnifiedCompositionDataList(),
+            originalNodeTemplateId);
+    if (Objects.nonNull(subInterfaceTemplateConsolidationData)) {
+      String parentPortNodeTemplateId = subInterfaceTemplateConsolidationData.getParentPortNodeTemplateId();
+      ComputeTemplateConsolidationData connectedComputeConsolidationData =
+          getConnectedComputeConsolidationData(unifiedCompositionTo.getUnifiedCompositionDataList(),
+              parentPortNodeTemplateId);
+      if (Objects.nonNull(connectedComputeConsolidationData)) {
+        NodeTemplate connectedComputeNodeTemplate = DataModelUtil.getNodeTemplate(unifiedCompositionTo
+            .getServiceTemplate(), connectedComputeConsolidationData.getNodeTemplateId());
+        return Optional.of(getNewSubInterfaceNodeTemplateId(unifiedCompositionTo.getServiceTemplate(),
+            connectedComputeNodeTemplate.getType(), connectedComputeConsolidationData,
+            subInterfaceTemplateConsolidationData, unifiedCompositionTo.getContext()));
+      }
+    }
+    return Optional.empty();
+  }
+
+  private static SubInterfaceTemplateConsolidationData getSubInterfaceTemplateConsolidationDataById(
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      String subInterfaceNodeTemplateId) {
+    return unifiedCompositionDataList.stream()
+        .map(UnifiedCompositionUtil::getSubInterfaceTemplateConsolidationDataList)
+        .flatMap(Collection::stream)
+        .filter(subInterfaceTemplateConsolidationData -> subInterfaceNodeTemplateId
+            .equals(subInterfaceTemplateConsolidationData.getNodeTemplateId()))
+        .findFirst().orElse(null);
+  }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/to/UnifiedCompositionTo.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/composition/to/UnifiedCompositionTo.java
new file mode 100644 (file)
index 0000000..56c6471
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to;
+
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+
+import java.util.List;
+
+public class UnifiedCompositionTo {
+  private ServiceTemplate serviceTemplate;
+  private ServiceTemplate substitutionServiceTemplate;
+  private List<UnifiedCompositionData> unifiedCompositionDataList;
+  private TranslationContext context;
+
+  public UnifiedCompositionTo(ServiceTemplate serviceTemplate,
+                              ServiceTemplate substitutionServiceTemplate,
+                              List<UnifiedCompositionData> unifiedCompositionDataList,
+                              TranslationContext context) {
+    this.serviceTemplate = serviceTemplate;
+    this.substitutionServiceTemplate = substitutionServiceTemplate;
+    this.unifiedCompositionDataList = unifiedCompositionDataList;
+    this.context = context;
+  }
+
+  public ServiceTemplate getServiceTemplate() {
+    return serviceTemplate;
+  }
+
+  public void setServiceTemplate(ServiceTemplate serviceTemplate) {
+    this.serviceTemplate = serviceTemplate;
+  }
+
+  public ServiceTemplate getSubstitutionServiceTemplate() {
+    return substitutionServiceTemplate;
+  }
+
+  public void setSubstitutionServiceTemplate(ServiceTemplate substitutionServiceTemplate) {
+    this.substitutionServiceTemplate = substitutionServiceTemplate;
+  }
+
+  public List<UnifiedCompositionData> getUnifiedCompositionDataList() {
+    return unifiedCompositionDataList;
+  }
+
+  public void setUnifiedCompositionDataList(
+      List<UnifiedCompositionData> unifiedCompositionDataList) {
+    this.unifiedCompositionDataList = unifiedCompositionDataList;
+  }
+
+  public TranslationContext getContext() {
+    return context;
+  }
+
+  public void setContext(TranslationContext context) {
+    this.context = context;
+  }
+}
index 0eacd4d..5d37237 100644 (file)
@@ -19,7 +19,9 @@ package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolid
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Multimaps;
+
 import java.util.List;
+import java.util.Set;
 
 
 /**
@@ -27,10 +29,29 @@ import java.util.List;
  */
 public class PortTemplateConsolidationData extends EntityConsolidationData {
 
-  // key - subport type - for ResourceGroup it is the nested file name
-  // value - List of subports of that type in the port
-    private final ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceConsolidationData =
-        Multimaps.synchronizedListMultimap(ArrayListMultimap.create());
+  // key - sub-interface type - for ResourceGroup it is the nested file name
+  // value - List of sub-interfaces of that type in the port
+  private final ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceConsolidationData =
+      Multimaps.synchronizedListMultimap(ArrayListMultimap.create());
+
+  private String networkRole;
+
+  public String getNetworkRole() {
+    return networkRole;
+  }
+
+  public void setNetworkRole(String networkRole) {
+    this.networkRole = networkRole;
+  }
+
+  public List<SubInterfaceTemplateConsolidationData> getSubInterfaceConsolidationData(
+      String subInterfaceType) {
+    return this.subInterfaceConsolidationData.get(subInterfaceType);
+  }
+
+  public Set<String> getAllSubInterfaceNodeTypes() {
+    return this.subInterfaceConsolidationData.keySet();
+  }
 
   public void addSubInterfaceConsolidationData(String subPortType,
                                                SubInterfaceTemplateConsolidationData
@@ -43,29 +64,26 @@ public class PortTemplateConsolidationData extends EntityConsolidationData {
         other.subInterfaceConsolidationData.keySet());
   }
 
-    public void copyMappedInto(ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceTypeToEntity) {
+  public void copyMappedInto(ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceTypeToEntity) {
     subInterfaceTypeToEntity.putAll(this.subInterfaceConsolidationData);
   }
 
-    public void copyFlatInto(List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList) {
-        subInterfaceTemplateConsolidationDataList.addAll(subInterfaceConsolidationData.values());
-    }
+  public void copyFlatInto(List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList) {
+    subInterfaceTemplateConsolidationDataList.addAll(subInterfaceConsolidationData.values());
+  }
 
   public boolean isNumberOfSubInterfacesPerTypeSimilar(PortTemplateConsolidationData other) {
+    return this.subInterfaceConsolidationData.isEmpty() && other.subInterfaceConsolidationData.isEmpty()
+        || !this.subInterfaceConsolidationData.isEmpty() && !other.subInterfaceConsolidationData.isEmpty()
+          &&  this.subInterfaceConsolidationData.keySet().stream().allMatch(
+              subInterfaceType -> calculateSize(other.subInterfaceConsolidationData.get(subInterfaceType))
+                  ==  calculateSize(this.subInterfaceConsolidationData.get(subInterfaceType)));
 
-    if (this.subInterfaceConsolidationData.isEmpty() &&
-        other.subInterfaceConsolidationData.isEmpty()) {
-      return true;
-    }
-
-    return !this.subInterfaceConsolidationData.isEmpty()
-        && !other.subInterfaceConsolidationData.isEmpty()
-        && this.subInterfaceConsolidationData.keySet().stream().allMatch(subInterfaceType ->
-        calculateSize(other.subInterfaceConsolidationData.get(subInterfaceType)) ==
-            calculateSize(this.subInterfaceConsolidationData.get(subInterfaceType)));
   }
 
   private int calculateSize(List<SubInterfaceTemplateConsolidationData> subInterfaces) {
     return subInterfaces == null ? 0 : subInterfaces.size();
   }
+
+
 }
\ No newline at end of file
index 0a94d2a..f5eac50 100644 (file)
@@ -1,5 +1,22 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.services.heattotosca;
 
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.openecomp.core.utilities.file.FileUtils;
@@ -8,6 +25,7 @@ import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
@@ -28,6 +46,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
 import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
 
@@ -37,6 +56,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 
 
 /**
@@ -47,6 +67,9 @@ public class ConsolidationDataUtil {
   private static final String UNDERSCORE = "_";
   private static final String DIGIT_REGEX = "\\d+";
 
+  private ConsolidationDataUtil() {
+  }
+
   /**
    * Gets compute template consolidation data.
    *
@@ -106,10 +129,11 @@ public class ConsolidationDataUtil {
    * @param portNodeTemplateId the port node template id
    * @return the port template consolidation data
    */
-  public static PortTemplateConsolidationData getPortTemplateConsolidationData(
-      TranslationContext context,
-      ServiceTemplate serviceTemplate,
-      String portNodeTemplateId) {
+  public static PortTemplateConsolidationData getPortTemplateConsolidationData(TranslationContext context,
+                                                                               ServiceTemplate serviceTemplate,
+                                                                               String portResourceId,
+                                                                               String portResourceType,
+                                                                               String portNodeTemplateId) {
 
     ConsolidationData consolidationData = context.getConsolidationData();
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
@@ -127,16 +151,99 @@ public class ConsolidationDataUtil {
 
     PortTemplateConsolidationData portTemplateConsolidationData =
         filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
+    if (portTemplateConsolidationData == null) {
+      portTemplateConsolidationData = getInitPortTemplateConsolidationData(portNodeTemplateId,
+          portResourceId, portResourceType);
+      filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId, portTemplateConsolidationData);
+    }
+
+    return portTemplateConsolidationData;
+  }
+
+  private static PortTemplateConsolidationData getInitPortTemplateConsolidationData(String portNodeTemplateId,
+                                                                             String portResourceId,
+                                                                             String portResourceType) {
+    PortTemplateConsolidationData portTemplateConsolidationData = new PortTemplateConsolidationData();
+    portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId);
+    Optional<String> portNetworkRole = HeatToToscaUtil.evaluateNetworkRoleFromResourceId(portResourceId,
+        portResourceType);
+    portNetworkRole.ifPresent(portTemplateConsolidationData::setNetworkRole);
+    return portTemplateConsolidationData;
+  }
+
+  public static Optional<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationData(
+      TranslateTo subInterfaceTo,
+      String subInterfaceNodeTemplateId) {
+    Optional<String> parentPortNodeTemplateId =
+        HeatToToscaUtil.getSubInterfaceParentPortNodeTemplateId(subInterfaceTo);
+    if (parentPortNodeTemplateId.isPresent()) {
+      return Optional.ofNullable(getSubInterfaceTemplateConsolidationData(subInterfaceTo,
+         parentPortNodeTemplateId.get(), subInterfaceNodeTemplateId));
+    }
+    return Optional.empty();
+  }
+
+  private static SubInterfaceTemplateConsolidationData getSubInterfaceTemplateConsolidationData(
+      TranslateTo subInterfaceTo,
+      String parentPortNodeTemplateId,
+      String subInterfaceNodeTemplateId) {
+
+    ConsolidationData consolidationData = subInterfaceTo.getContext().getConsolidationData();
+    String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(subInterfaceTo.getServiceTemplate());
+
+    PortConsolidationData portConsolidationData = consolidationData.getPortConsolidationData();
+
+    FilePortConsolidationData filePortConsolidationData = portConsolidationData
+        .getFilePortConsolidationData(serviceTemplateFileName);
+
+    if (filePortConsolidationData == null) {
+      filePortConsolidationData = new FilePortConsolidationData();
+      portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName,
+          filePortConsolidationData);
+    }
+
+    PortTemplateConsolidationData portTemplateConsolidationData =
+        filePortConsolidationData.getPortTemplateConsolidationData(parentPortNodeTemplateId);
     if (portTemplateConsolidationData == null) {
       portTemplateConsolidationData = new PortTemplateConsolidationData();
-      portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId);
-      filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId,
+      portTemplateConsolidationData.setNodeTemplateId(parentPortNodeTemplateId);
+      filePortConsolidationData.setPortTemplateConsolidationData(parentPortNodeTemplateId,
           portTemplateConsolidationData);
     }
 
-    return portTemplateConsolidationData;
+    return getSubInterfaceResourceTemplateConsolidationData(subInterfaceTo.getResource(), portTemplateConsolidationData,
+        subInterfaceNodeTemplateId, parentPortNodeTemplateId);
   }
 
+  private static SubInterfaceTemplateConsolidationData getSubInterfaceResourceTemplateConsolidationData(
+      Resource resource,
+      PortTemplateConsolidationData portTemplateConsolidationData,
+      String subInterfaceNodeTemplateId,
+      String parentPortNodeTemplateId) {
+    String subInterfaceType = ToscaNodeType.VLAN_SUB_INTERFACE_RESOURCE_TYPE_PREFIX
+        + FileUtils.getFileWithoutExtention(HeatToToscaUtil.getSubInterfaceResourceType(resource));
+    SubInterfaceTemplateConsolidationData data = new SubInterfaceTemplateConsolidationData();
+    data.setNodeTemplateId(subInterfaceNodeTemplateId);
+    data.setParentPortNodeTemplateId(parentPortNodeTemplateId);
+    if (CollectionUtils.isNotEmpty(portTemplateConsolidationData.getSubInterfaceConsolidationData(subInterfaceType))) {
+      boolean isNewSubInterface = true;
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          portTemplateConsolidationData.getSubInterfaceConsolidationData(subInterfaceType);
+      for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+          subInterfaceTemplateConsolidationDataList) {
+        if (subInterfaceNodeTemplateId.equals(subInterfaceTemplateConsolidationData.getNodeTemplateId())) {
+          data = subInterfaceTemplateConsolidationData;
+          isNewSubInterface = false;
+        }
+      }
+      if (isNewSubInterface) {
+        portTemplateConsolidationData.addSubInterfaceConsolidationData(subInterfaceType, data);
+      }
+    } else {
+      portTemplateConsolidationData.addSubInterfaceConsolidationData(subInterfaceType, data);
+    }
+    return data;
+  }
 
   /**
    * Gets nested template consolidation data.
@@ -250,10 +357,13 @@ public class ConsolidationDataUtil {
    *
    * @param translateTo        the translate to
    * @param computeNodeType    the compute node type
+   * @param portResourceId     the port resource id
    * @param portNodeTemplateId the port node template id
    */
   public static void updatePortInConsolidationData(TranslateTo translateTo,
                                                    String computeNodeType,
+                                                   String portResourceId,
+                                                   String portResourceType,
                                                    String portNodeTemplateId) {
     TranslationContext translationContext = translateTo.getContext();
     ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
@@ -262,7 +372,8 @@ public class ConsolidationDataUtil {
             translateTo.getTranslatedId());
     computeTemplateConsolidationData.addPort(getPortType(portNodeTemplateId), portNodeTemplateId);
     // create port in consolidation data
-    getPortTemplateConsolidationData(translationContext, serviceTemplate, portNodeTemplateId);
+    getPortTemplateConsolidationData(translationContext, serviceTemplate, portResourceId,
+        portResourceType, portNodeTemplateId);
   }
 
   /**
@@ -278,12 +389,7 @@ public class ConsolidationDataUtil {
                                               String nodeTemplateId, String requirementId,
                                               RequirementAssignment requirementAssignment) {
     ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER;
-    HeatOrchestrationTemplate heatOrchestrationTemplate = translateTo
-        .getHeatOrchestrationTemplate();
-    TranslationContext translationContext = translateTo.getContext();
-
-    consolidationEntityType.setEntityType(heatOrchestrationTemplate, sourceResource,
-        targetResource, translateTo.getContext());
+    consolidationEntityType.setEntityType(sourceResource, targetResource, translateTo.getContext());
     // Add resource dependency information in nodesConnectedIn if the target node
     // is a consolidation entity
     if (isConsolidationEntity(consolidationEntityType.getTargetEntityType())) {
@@ -304,10 +410,7 @@ public class ConsolidationDataUtil {
 
 
   private static boolean isConsolidationEntity(ConsolidationEntityType consolidationEntityType) {
-    return (consolidationEntityType == ConsolidationEntityType.COMPUTE
-        || consolidationEntityType == ConsolidationEntityType.PORT
-        || consolidationEntityType == ConsolidationEntityType.NESTED
-        || consolidationEntityType == ConsolidationEntityType.VFC_NESTED);
+    return ConsolidationEntityType.getSupportedConsolidationEntities().contains(consolidationEntityType);
   }
 
   /**
@@ -340,8 +443,17 @@ public class ConsolidationDataUtil {
       entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
           serviceTemplate, nodeType, translateTo.getTranslatedId());
     } else if (consolidationEntityType == ConsolidationEntityType.PORT) {
-      entityConsolidationData = getPortTemplateConsolidationData(translationContext,
-          serviceTemplate, translateTo.getTranslatedId());
+      entityConsolidationData = getPortTemplateConsolidationData(translationContext, serviceTemplate,
+          translateTo.getResourceId(), translateTo.getResource().getType(), translateTo
+          .getTranslatedId());
+    } else if (consolidationEntityType == ConsolidationEntityType.SUB_INTERFACE
+        && Objects.nonNull(serviceTemplate.getTopology_template().getNode_templates()
+        .get(translateTo.getTranslatedId()))) {
+      Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData =
+          getSubInterfaceTemplateConsolidationData(translateTo, translateTo.getTranslatedId());
+      if (subInterfaceTemplateConsolidationData.isPresent()) {
+        entityConsolidationData = subInterfaceTemplateConsolidationData.get();
+      }
     } else if (consolidationEntityType == ConsolidationEntityType.VFC_NESTED
         || consolidationEntityType == ConsolidationEntityType.NESTED) {
       entityConsolidationData =
@@ -350,17 +462,15 @@ public class ConsolidationDataUtil {
               translateTo.getTranslatedId());
     }
 
-    if (Objects.isNull(entityConsolidationData)) {
-      return;
-    }
+    if (Objects.nonNull(entityConsolidationData)) {
+      if (Objects.isNull(entityConsolidationData.getNodesConnectedOut())) {
+        entityConsolidationData.setNodesConnectedOut(new HashMap<>());
+      }
 
-    if (Objects.isNull(entityConsolidationData.getNodesConnectedOut())) {
-      entityConsolidationData.setNodesConnectedOut(new HashMap<>());
+      entityConsolidationData.getNodesConnectedOut()
+          .computeIfAbsent(nodeTemplateId, k -> new ArrayList<>())
+          .add(requirementAssignmentData);
     }
-
-    entityConsolidationData.getNodesConnectedOut()
-        .computeIfAbsent(nodeTemplateId, k -> new ArrayList<>())
-        .add(requirementAssignmentData);
   }
 
   /**
@@ -386,7 +496,7 @@ public class ConsolidationDataUtil {
     if (consolidationEntityType == ConsolidationEntityType.COMPUTE) {
       NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
           dependentNodeTemplateId);
-      String nodeType = null;
+      String nodeType;
       if (Objects.isNull(computeNodeTemplate)) {
         Resource targetResource =
             translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId);
@@ -403,8 +513,18 @@ public class ConsolidationDataUtil {
       entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
           serviceTemplate, nodeType, dependentNodeTemplateId);
     } else if (consolidationEntityType == ConsolidationEntityType.PORT) {
-      entityConsolidationData = getPortTemplateConsolidationData(translationContext,
-          serviceTemplate, dependentNodeTemplateId);
+      entityConsolidationData = getPortTemplateConsolidationData(translationContext, serviceTemplate,
+          translateTo.getResourceId(), translateTo.getResource().getType(), dependentNodeTemplateId);
+    }  else if (consolidationEntityType == ConsolidationEntityType.SUB_INTERFACE) {
+      Resource targetResource =
+          translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId);
+      TranslateTo subInterfaceTo = new TranslateTo(translateTo.getHeatFileName(), serviceTemplate, translateTo
+          .getHeatOrchestrationTemplate(), targetResource, targetResourceId, null, translationContext);
+      Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData =
+          getSubInterfaceTemplateConsolidationData(subInterfaceTo, targetResourceId);
+      if (subInterfaceTemplateConsolidationData.isPresent()) {
+        entityConsolidationData = subInterfaceTemplateConsolidationData.get();
+      }
     } else if (consolidationEntityType == ConsolidationEntityType.NESTED
         || consolidationEntityType == ConsolidationEntityType.VFC_NESTED) {
       entityConsolidationData = getNestedTemplateConsolidationData(translationContext,
@@ -501,9 +621,9 @@ public class ConsolidationDataUtil {
   public static boolean isVolumeResource(HeatOrchestrationTemplate heatOrchestrationTemplate,
                                          String resourceId) {
     String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
-    return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
+    return resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
         || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
-        .getHeatResource()));
+        .getHeatResource());
   }
 
   /**
@@ -514,9 +634,9 @@ public class ConsolidationDataUtil {
    */
   public static boolean isVolumeResource(Resource resource) {
     String resourceType = resource.getType();
-    return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
+    return resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
         || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
-        .getHeatResource()));
+        .getHeatResource());
   }
 
   /**
@@ -579,10 +699,9 @@ public class ConsolidationDataUtil {
     }
     if (ConsolidationDataUtil.isPortResource(heatOrchestrationTemplate,
         contrailSharedResourceId)) {
-      NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-          sharedTranslatedResourceId);
-      EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(context,
-          serviceTemplate, sharedTranslatedResourceId);
+      Resource resource = heatOrchestrationTemplate.getResources().get(contrailSharedResourceId);
+      EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(context, serviceTemplate,
+          contrailSharedResourceId, resource.getType(), sharedTranslatedResourceId);
       List<GetAttrFuncData> getAttrFuncDataList = entityConsolidationData
           .getOutputParametersGetAttrIn();
       removeParamNameFromAttrFuncList(paramName, getAttrFuncDataList);
index 8e6e902..dd7825b 100644 (file)
@@ -1,13 +1,34 @@
-package org.openecomp.sdc.translator.services.heattotosca;
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
-import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
-import org.openecomp.sdc.heat.datatypes.model.Resource;
-import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+package org.openecomp.sdc.translator.services.heattotosca;
 
 import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isComputeResource;
 import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isPortResource;
 import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isVolumeResource;
 
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+
 /**
  * The enum Entity type.
  */
@@ -19,7 +40,7 @@ public enum ConsolidationEntityType {
   //Simple nested VFC (nested file with one compute) or a complex VFC (nested ST with more than
   //one compute)
   VFC_NESTED,
-  SUB_PORT,
+  SUB_INTERFACE,
   OTHER;
 
   private ConsolidationEntityType sourceEntityType;
@@ -33,39 +54,54 @@ public enum ConsolidationEntityType {
     return targetEntityType;
   }
 
+
   /**
    * Sets entity type.
    *
-   * @param heatOrchestrationTemplate the heat orchestration template
    * @param sourceResource          the source resource
    * @param targetResource          the target resource
    */
-  public void setEntityType(HeatOrchestrationTemplate heatOrchestrationTemplate,
-                            Resource sourceResource,
+  public void setEntityType(Resource sourceResource,
                             Resource targetResource,
                             TranslationContext context) {
     targetEntityType =
-        getEntityType(heatOrchestrationTemplate, targetResource, context);
+        getEntityType(targetResource, context);
     sourceEntityType =
-        getEntityType(heatOrchestrationTemplate, sourceResource, context);
+        getEntityType(sourceResource, context);
+  }
+
+  private static final Set<ConsolidationEntityType> consolidationEntityTypes = initConsolidationEntities();
+  
+  private static Set<ConsolidationEntityType> initConsolidationEntities() {
+    Set<ConsolidationEntityType> consolidationEntityTypes = new HashSet<>(Arrays.asList(ConsolidationEntityType
+        .values()));
+    return Collections.unmodifiableSet(consolidationEntityTypes.stream()
+        .filter(entity -> entity != ConsolidationEntityType.OTHER
+            && entity != ConsolidationEntityType.VOLUME)
+        .collect(Collectors.toSet()));
+  }
+
+  public static Set<ConsolidationEntityType> getSupportedConsolidationEntities() {
+    return consolidationEntityTypes;
   }
 
-  private ConsolidationEntityType getEntityType(HeatOrchestrationTemplate heatOrchestrationTemplate,
-                                                Resource resource, TranslationContext context) {
+  private ConsolidationEntityType getEntityType(Resource resource, TranslationContext context) {
+    ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER;
     if (isComputeResource(resource)) {
-      return ConsolidationEntityType.COMPUTE;
+      consolidationEntityType = ConsolidationEntityType.COMPUTE;
     } else if (isPortResource(resource)) {
-      return ConsolidationEntityType.PORT;
+      consolidationEntityType = ConsolidationEntityType.PORT;
+    } else if (HeatToToscaUtil.isSubInterfaceResource(resource, context)) {
+      consolidationEntityType = ConsolidationEntityType.SUB_INTERFACE;
     } else if (isVolumeResource(resource)) {
-      return ConsolidationEntityType.VOLUME;
+      consolidationEntityType = ConsolidationEntityType.VOLUME;
     } else if (HeatToToscaUtil.isNestedResource(resource)) {
       if (HeatToToscaUtil.isNestedVfcResource(resource, context)) {
-        return ConsolidationEntityType.VFC_NESTED;
+        consolidationEntityType = ConsolidationEntityType.VFC_NESTED;
       } else {
-        return ConsolidationEntityType.NESTED;
+        consolidationEntityType = ConsolidationEntityType.NESTED;
       }
-    } else {
-      return ConsolidationEntityType.OTHER;
     }
+    return consolidationEntityType;
   }
 }
\ No newline at end of file
index bc5a3c7..c476203 100644 (file)
@@ -920,6 +920,8 @@ public class ConsolidationService {
           }
         }
       }
+      unifiedCompositionData.setSubInterfaceTemplateConsolidationDataList(
+          subInterfaceTemplateConsolidationDataList);
       unifiedCompositionDataList.add(unifiedCompositionData);
     }
 
@@ -1034,13 +1036,13 @@ public class ConsolidationService {
 
   List<String> getPropertiesWithIdenticalVal(UnifiedCompositionEntity entity) {
     switch (entity) {
-      case Compute:
+      case COMPUTE:
         return getComputePropertiesWithIdenticalVal();
 
-      case Other:
+      case OTHER:
         return getComputePropertiesWithIdenticalVal();
 
-      case Port:
+      case PORT:
         return getPortPropertiesWithIdenticalVal();
 
       default:
index 6399086..98e6507 100644 (file)
@@ -1,61 +1,29 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator.services.heattotosca;
 
 public class Constants {
   //Service Template - Template Names
-  public static final String COMMON_GLOBAL_TEMPLATE_NAME = "CommonGlobalTypes";
-  public static final String CINDER_VOLUME_TEMPLATE_NAME = "CinderVolumeGlobalTypes";
-  public static final String CONTRAIL_VIRTUAL_NETWORK_TEMPLATE_NAME =
-      "ContrailVirtualNetworkGlobalType";
-  public static final String CONTRAIL_NETWORK_RULE_TEMPLATE_NAME = "ContrailNetworkRuleGlobalType";
-  public static final String CONTRAILV2_VIRTUAL_NETWORK_TEMPLATE_NAME =
-      "ContrailV2VirtualNetworkGlobalType";
-  public static final String CONTRAILV2_NETWORK_RULE_TEMPLATE_NAME =
-      "ContrailV2NetworkRuleGlobalType";
-  public static final String CONTRAILV2_VIRTUAL_MACHINE_INTERFACE_TEMPLATE_NAME =
-      "ContrailV2VirtualMachineInterfaceGlobalType";
-  public static final String NEUTRON_NET_TEMPLATE_NAME = "NeutronNetGlobalTypes";
-  public static final String NEUTRON_PORT_TEMPLATE_NAME = "NeutronPortGlobalTypes";
-  public static final String NEUTRON_SECURITY_RULES_TEMPLATE_NAME =
-      "NeutronSecurityRulesGlobalTypes";
-  public static final String NOVA_SERVER_TEMPLATE_NAME = "NovaServerGlobalTypes";
-  public static final String ABSTRACT_SUBSTITUTE_TEMPLATE_NAME = "AbstractSubstituteGlobalTypes";
   public static final String GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME = "GlobalSubstitutionTypes";
-  public static final String CONTRAIL_COMPUTE_TEMPLATE_NAME = "ContrailComputeGlobalTypes";
-  public static final String CONTRAIL_PORT_TEMPLATE_NAME = "ContrailPortGlobalTypes";
-  public static final String CONTRAIL_ABSTRACT_SUBSTITUTE_TEMPLATE_NAME =
-      "ContrailAbstractSubstituteGlobalTypes";
   public static final String MAIN_TEMPLATE_NAME = "Main";
-  public static final String PORT_TEMPLATE_NAME = "PortGlobalTypes";
-  public static final String COMPUTE_TEMPLATE_NAME = "ComputeGlobalTypes";
-  public static final String NETWORK_TEMPLATE_NAME = "NetworkGlobalTypes";
-  public static final String SUB_INTERFACE_TEMPLATE_NAME = "SubInterfaceGlobalTypes";
-  public static final String CONTRAILV2_VLAN_SUB_INTERFACE_TEMPLATE_NAME =
-          "ContrailV2VLANSubInterfaceGlobalType";
   //properties
   public static final String MAX_INSTANCES_PROPERTY_NAME = "max_instances";
   public static final String DESCRIPTION_PROPERTY_NAME = "description";
   public static final String NAME_PROPERTY_NAME = "name";
-  public static final String RULES_PROPERTY_NAME = "rules";
   public static final String SECURITY_GROUPS_PROPERTY_NAME = "security_groups";
   public static final String PORT_PROPERTY_NAME = "port";
   //General
@@ -64,9 +32,10 @@ public class Constants {
   public static final String SERVICE_INSTANCE_PORT_PREFIX = "port_";
   public static final String SERVICE_INSTANCE_LINK_PREFIX = "link_";
   //Unified model
-  public static final String COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX = "vm_";
-  public static final String COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX = "_name";
-  public static final String PORT_IDENTICAL_VALUE_PROPERTY_PREFIX = "port_";
+  static final String COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX = "vm_";
+  static final String COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX = "_name";
+  static final String PORT_IDENTICAL_VALUE_PROPERTY_PREFIX = "port_";
+  static final String SUB_INTERFACE_PROPERTY_VALUE_PREFIX = "subinterface_";
   public static final String ABSTRACT_NODE_TEMPLATE_ID_PREFIX = "abstract_";
 
   private Constants() {
index dafd8e6..370f489 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,6 +36,7 @@ import org.openecomp.sdc.heat.datatypes.manifest.FileData;
 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.heat.datatypes.model.ResourceReferenceFunctions;
 import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
 import org.openecomp.sdc.heat.datatypes.structure.ValidationStructureList;
 import org.openecomp.sdc.heat.services.HeatConstants;
@@ -45,6 +46,7 @@ import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
 import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
+import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
 import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
 import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
@@ -76,12 +78,15 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.to.FileDataCollection;
 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
 import org.openecomp.sdc.translator.services.heattotosca.errors.ResourceNotFoundInHeatFileErrorBuilder;
 import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
+import org.openecomp.sdc.translator.services.heattotosca.helper.ContrailV2VirtualMachineInterfaceHelper;
 import org.openecomp.sdc.translator.services.heattotosca.helper.FunctionTranslationHelper;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationBase;
 import org.openecomp.sdc.translator.services.heattotosca.mapping.TranslatorHeatToToscaPropertyConverter;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -100,9 +105,11 @@ public class HeatToToscaUtil {
   private static final Logger LOGGER = LoggerFactory.getLogger(HeatToToscaUtil.class);
   public static final String FQ_NAME = "fq_name";
   public static final String GET_PARAM = "get_param";
-  private static final String FORWARDER = "forwarder";
   private static final String GET_ATTR = "get_attr";
   private static final String GET_RESOURCE = "get_resource";
+  private static final String VMI = "vmi";
+  private static final String NEUTRON_PORT_IDENTIFIER = "port";
+  private static final String UNDERSCORE = "_";
 
   /**
    * Load and translate template data translator output.
@@ -285,7 +292,7 @@ public class HeatToToscaUtil {
                                                   List<String> filenames,
                                                   Set<String> referenced) {
     Object resourceDef = resource.getProperties().get(HeatConstants.RESOURCE_DEF_PROPERTY_NAME);
-    Object innerTypeDef = ((Map) resourceDef).get("type");
+    Object innerTypeDef = ((Map) resourceDef).get(HeatConstants.RESOURCE_DEF_TYPE_PROPERTY_NAME);
     if (innerTypeDef instanceof String) {
       String internalResourceType = (String) innerTypeDef;
       if (filenames.contains(internalResourceType)) {
@@ -519,12 +526,14 @@ public class HeatToToscaUtil {
 
     if (resourceType.equals(HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource())) {
       Object resourceDef = resource.getProperties().get(HeatConstants.RESOURCE_DEF_PROPERTY_NAME);
-      if (!(((Map) resourceDef).get("type") instanceof String)) {
+      if (!(((Map) resourceDef).get(HeatConstants.RESOURCE_DEF_TYPE_PROPERTY_NAME) instanceof
+          String)) {
         //currently only resource group which is poinitng to nested heat file is supported
         //dynamic type is currently not supported
         return false;
       }
-      String internalResourceType = (String) ((Map) resourceDef).get("type");
+      String internalResourceType = (String) ((Map) resourceDef).get(HeatConstants
+          .RESOURCE_DEF_TYPE_PROPERTY_NAME);
       if (isYamlFile(internalResourceType)) {
         return true;
       }
@@ -534,6 +543,108 @@ public class HeatToToscaUtil {
     return false;
   }
 
+  /**
+   * Checks if the current HEAT resource if of type sub interface.
+   *
+   * @param resource the resource
+   * @return true if the resource is of sub interface type and false otherwise
+   */
+  public static boolean isSubInterfaceResource(Resource resource, TranslationContext context) {
+    if (!ToggleableFeature.VLAN_TAGGING.isActive()) {
+      //Remove this once feature is stable and moved to production
+      return false;
+    }
+    //Check if resource group is a nested resource
+    if (!isNestedResource(resource)) {
+      return false;
+    }
+    Optional<String> nestedHeatFileName = HeatToToscaUtil.getNestedHeatFileName(resource);
+    return nestedHeatFileName.filter(fileName ->
+        isNestedVlanResource(fileName, context)).isPresent();
+  }
+
+  private static boolean isNestedVlanResource(String nestedHeatFileName,
+                                      TranslationContext translationContext) {
+    HeatOrchestrationTemplate nestedHeatOrchestrationTemplate = new YamlUtil()
+        .yamlToObject(translationContext.getFileContent(nestedHeatFileName),
+            HeatOrchestrationTemplate.class);
+    return Objects.nonNull(nestedHeatOrchestrationTemplate.getResources())
+        && nestedHeatOrchestrationTemplate.getResources().values().stream()
+        .anyMatch(new ContrailV2VirtualMachineInterfaceHelper()::isVlanSubInterfaceResource);
+  }
+
+  public static Optional<String> getSubInterfaceParentPortNodeTemplateId(TranslateTo subInterfaceTo) {
+    String subInterfaceResourceType = getSubInterfaceResourceType(subInterfaceTo.getResource());
+    HeatOrchestrationTemplate nestedHeatOrchestrationTemplate = new YamlUtil()
+        .yamlToObject(subInterfaceTo.getContext().getFileContent(subInterfaceResourceType),
+            HeatOrchestrationTemplate.class);
+    if (Objects.isNull(nestedHeatOrchestrationTemplate.getResources())) {
+      return Optional.empty();
+    }
+    for (Map.Entry<String, Resource> resourceEntry : nestedHeatOrchestrationTemplate
+        .getResources().entrySet()) {
+      Resource resource = resourceEntry.getValue();
+      if (isVmiRefsPropertyExists(resource)) {
+        Object toscaPropertyValue =
+            TranslatorHeatToToscaPropertyConverter.getToscaPropertyValue(subInterfaceTo.getServiceTemplate(),
+                resourceEntry.getKey(), HeatConstants.VMI_REFS_PROPERTY_NAME,
+                resource.getProperties().get(HeatConstants.VMI_REFS_PROPERTY_NAME),
+                resource.getType(), subInterfaceResourceType, nestedHeatOrchestrationTemplate,
+                null, subInterfaceTo.getContext());
+        return getParentNodeTemplateIdFromPropertyValue(toscaPropertyValue, subInterfaceTo);
+      }
+    }
+    return Optional.empty();
+  }
+
+  private static boolean isVmiRefsPropertyExists(Resource resource) {
+    return HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE
+        .getHeatResource().equals(resource.getType())
+        && MapUtils.isNotEmpty(resource.getProperties())
+        && resource.getProperties().containsKey(HeatConstants.VMI_REFS_PROPERTY_NAME);
+  }
+
+  public static String getSubInterfaceResourceType(Resource resource) {
+    if (!HeatToToscaUtil.isYamlFile(resource.getType())) {
+     return ((Map) resource.getProperties()
+          .get(HeatConstants.RESOURCE_DEF_PROPERTY_NAME))
+          .get(HeatConstants.RESOURCE_DEF_TYPE_PROPERTY_NAME)
+          .toString();
+    }
+    return resource.getType();
+  }
+
+  private static Optional<String> getParentNodeTemplateIdFromPropertyValue(Object toscaPropertyValue,
+                                                                           TranslateTo subInterfaceTo) {
+    if (toscaPropertyValue instanceof List
+        && ((List) toscaPropertyValue).get(0) instanceof Map) {
+      Resource subInterfaceResource = subInterfaceTo.getResource();
+      Map<String, String> toscaPropertyValueMap = (Map) ((List) toscaPropertyValue).get(0);
+      String parentPortPropertyInput = toscaPropertyValueMap.get(ToscaFunctions.GET_INPUT
+          .getDisplayName());
+      Map<String, Object> resourceDefPropertiesMap;
+      if (!isYamlFile(subInterfaceResource.getType())) {
+        resourceDefPropertiesMap = (Map)((Map) subInterfaceResource
+            .getProperties().get(HeatConstants.RESOURCE_DEF_PROPERTY_NAME))
+            .get(HeatConstants.RESOURCE_DEF_PROPERTIES);
+      } else {
+        resourceDefPropertiesMap = subInterfaceResource.getProperties();
+      }
+      Object parentPortObj = resourceDefPropertiesMap.get(parentPortPropertyInput);
+      if (parentPortObj instanceof  Map) {
+        Map<String, String> parentPortPropertyValue = (Map) parentPortObj;
+        if (parentPortPropertyValue.keySet().contains(ResourceReferenceFunctions
+            .GET_RESOURCE.getFunction())) {
+         return ResourceTranslationBase.getResourceTranslatedId(subInterfaceTo.getHeatFileName(),
+             subInterfaceTo.getHeatOrchestrationTemplate(),
+             parentPortPropertyValue.get(ResourceReferenceFunctions.GET_RESOURCE.getFunction()),
+             subInterfaceTo.getContext());
+        }
+      }
+    }
+    return Optional.empty();
+  }
+
   /**
    * Checks if the nested resource represents a VFC or a complex VFC (Heat file should contain at
    * least one or more compute nodes).
@@ -573,7 +684,8 @@ public class HeatToToscaUtil {
 
     if (resourceType.equals(HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource())) {
       Object resourceDef = resource.getProperties().get(HeatConstants.RESOURCE_DEF_PROPERTY_NAME);
-      String internalResourceType = (String) ((Map) resourceDef).get("type");
+      String internalResourceType = (String) ((Map) resourceDef).get(HeatConstants
+          .RESOURCE_DEF_TYPE_PROPERTY_NAME);
       return Optional.of(internalResourceType);
     }
     return Optional.of(resourceType);
@@ -592,14 +704,15 @@ public class HeatToToscaUtil {
     String resourceType = resource.getType();
     if (resourceType.equals(HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource())) {
       Object resourceDef = resource.getProperties().get(HeatConstants.RESOURCE_DEF_PROPERTY_NAME);
-      String internalResourceType = (String) ((Map) resourceDef).get("type");
+      String internalResourceType = (String) ((Map) resourceDef).get(HeatConstants
+          .RESOURCE_DEF_TYPE_PROPERTY_NAME);
       return Optional.of(internalResourceType);
     } else {
       return Optional.of(resourceType);
     }
   }
 
-  private static boolean isYamlFile(String fileName) {
+  public static boolean isYamlFile(String fileName) {
     return fileName.endsWith(".yaml") || fileName.endsWith(".yml");
   }
 
@@ -800,7 +913,10 @@ public class HeatToToscaUtil {
       return Optional.empty();
     }
     Optional<AttachedPropertyVal> extractedProperty = extractProperty(property);
-    return extractedProperty.flatMap(HeatToToscaUtil::getParameterName);
+    if (extractedProperty.isPresent()) {
+      return getParameterName(extractedProperty.get());
+    }
+    return Optional.empty();
   }
 
   private static Optional<String> getParameterName(AttachedPropertyVal extractedProperty) {
@@ -1063,25 +1179,22 @@ public class HeatToToscaUtil {
    * Checks if the source and target resource is a valid candidate for adding tosca dependency
    * relationship.
    *
-   * @param heatOrchestrationTemplate the heat orchestration template
    * @param sourceResource          the source resource
    * @param targetResource          the target resource
    * @param dependencyEntity        the dependency entity
    * @return true if the candidate resources are a valid combination for the dependency relationship
-   * and false otherwise
+   *              and false otherwise
    */
-  public static boolean isValidDependsOnCandidate(HeatOrchestrationTemplate
-                                                      heatOrchestrationTemplate,
-                                                  Resource sourceResource,
+  public static boolean isValidDependsOnCandidate(Resource sourceResource,
                                                   Resource targetResource,
                                                   ConsolidationEntityType dependencyEntity,
                                                   TranslationContext context) {
-    dependencyEntity
-        .setEntityType(heatOrchestrationTemplate, sourceResource, targetResource, context);
+    dependencyEntity.setEntityType(sourceResource, targetResource, context);
     ConsolidationEntityType sourceEntityType = dependencyEntity.getSourceEntityType();
     ConsolidationEntityType targetEntityType = dependencyEntity.getTargetEntityType();
 
-    return ConsolidationTypesConnectivity.isDependsOnRelationshipValid(sourceEntityType, targetEntityType);
+    return ConsolidationTypesConnectivity
+        .isDependsOnRelationshipValid(sourceEntityType, targetEntityType);
   }
 
   private static Map<String, Object> managerSubstitutionNodeTemplateProperties(
@@ -1183,17 +1296,12 @@ public class HeatToToscaUtil {
       flatNodeType.getCapabilities()
           .entrySet()
           .stream()
-          .filter(capabilityNodeEntry -> shouldCapabilityNeedsToBeAdded(capabilityNodeEntry.getKey()))
           .forEach(capabilityNodeEntry ->
               addCapabilityToSubMapping(
               templateName, capabilityNodeEntry, nodeTypeCapabilitiesDefinition, capabilitySubstitutionMapping));
     }
   }
 
-  private static boolean shouldCapabilityNeedsToBeAdded(String capabilityKey) {
-    return !capabilityKey.contains(FORWARDER) || ToggleableFeature.FORWARDER_CAPABILITY.isActive();
-  }
-
   public static boolean shouldAnnotationsToBeAdded() {
     return ToggleableFeature.ANNOTATIONS.isActive();
   }
@@ -1204,7 +1312,7 @@ public class HeatToToscaUtil {
                                                 Map<String, List<String>> capabilitySubstitutionMapping) {
     String capabilityKey;
     List<String> capabilityMapping;
-    capabilityKey = capabilityNodeEntry.getKey() + "_" + templateName;
+    capabilityKey = capabilityNodeEntry.getKey() + UNDERSCORE + templateName;
     nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityNodeEntry.getValue().clone());
     capabilityMapping = new ArrayList<>();
     capabilityMapping.add(templateName);
@@ -1243,7 +1351,7 @@ public class HeatToToscaUtil {
         requirementMapping.add(templateName);
         requirementMapping.add(requirementNodeEntry.getKey());
         requirementSubstitutionMapping
-            .put(requirementNodeEntry.getKey() + "_" + templateName, requirementMapping);
+            .put(requirementNodeEntry.getKey() + UNDERSCORE + templateName, requirementMapping);
         if (Objects.isNull(requirementNodeEntryValue.getNode())) {
           requirementNodeEntryValue.setOccurrences(new Object[]{1, 1});
         }
@@ -1354,4 +1462,66 @@ public class HeatToToscaUtil {
     return serviceTemplatesMap;
   }
 
+  public static String getNestedResourceTypePrefix(TranslateTo translateTo) {
+    String nestedFileName = translateTo.getResource().getType();
+    if (isSubInterfaceResource(translateTo.getResource(), translateTo.getContext())
+        && isSubInterfaceBoundToPort(translateTo)) {
+      return ToscaNodeType.VLAN_SUB_INTERFACE_RESOURCE_TYPE_PREFIX;
+    }
+    return ToscaNodeType.NESTED_HEAT_RESOURCE_TYPE_PREFIX;
+  }
+
+  private static boolean isSubInterfaceBoundToPort(TranslateTo translateTo) {
+    return HeatToToscaUtil.getSubInterfaceParentPortNodeTemplateId(translateTo).isPresent();
+  }
+
+  //Method evaluate the  network role from sub interface node template id, designed considering
+  // only single sub interface present in nested file else it will return null
+  public static Optional<String> getNetworkRoleFromResource(Resource resource,
+                                                  TranslationContext translationContext) {
+    Optional<String> networkRole = Optional.empty();
+    Optional<String> nestedHeatFileName = HeatToToscaUtil.getNestedHeatFileName(resource);
+
+    if (!nestedHeatFileName.isPresent()) {
+      return networkRole;
+    }
+
+    HeatOrchestrationTemplate nestedHeatOrchestrationTemplate = new YamlUtil()
+        .yamlToObject(translationContext.getFileContent(nestedHeatFileName.get()),
+            HeatOrchestrationTemplate.class);
+
+    if (MapUtils.isNotEmpty(nestedHeatOrchestrationTemplate.getResources())) {
+      ContrailV2VirtualMachineInterfaceHelper contrailV2VirtualMachineInterfaceHelper =
+          new ContrailV2VirtualMachineInterfaceHelper();
+      Optional<Map.Entry<String, Resource>> vlanSubinterfaceResource = nestedHeatOrchestrationTemplate
+          .getResources().entrySet().stream()
+          .filter(resourceEntry -> contrailV2VirtualMachineInterfaceHelper
+              .isVlanSubInterfaceResource(resourceEntry.getValue()))
+          .findFirst();
+      if (vlanSubinterfaceResource.isPresent()) {
+        Map.Entry<String, Resource> vlanSubinterfaceResourceEntry = vlanSubinterfaceResource.get();
+        networkRole = evaluateNetworkRoleFromResourceId(vlanSubinterfaceResourceEntry.getKey(),
+            vlanSubinterfaceResourceEntry.getValue().getType());
+      }
+    }
+    return networkRole;
+  }
+
+  public static Optional<String> evaluateNetworkRoleFromResourceId(String resourceId, String resourceType) {
+    String[] splitStr = resourceId.toLowerCase().split(UNDERSCORE);
+    List<String> splitList = Arrays.asList(splitStr);
+
+    if (resourceType.equals(HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource())) {
+      if (splitList.contains(VMI)) {
+        return Optional.of(splitList.get(splitList.indexOf(VMI) - 1));
+      }
+    }
+
+    if (resourceType.equals(HeatResourcesTypes.NEUTRON_PORT_RESOURCE_TYPE.getHeatResource())) {
+      if (splitList.contains(NEUTRON_PORT_IDENTIFIER)) {
+        return Optional.of(splitList.get(splitList.indexOf(NEUTRON_PORT_IDENTIFIER) - 1));
+      }
+    }
+    return Optional.empty();
+  }
 }
index cfab3fc..84a9dcf 100644 (file)
@@ -1,25 +1,40 @@
 /*
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator.services.heattotosca;
 
+import static org.openecomp.sdc.tosca.services.DataModelUtil.getClonedObject;
+import static org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity.COMPUTE;
+import static org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity.PORT;
+import static org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity.SUB_INTERFACE;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.PORT_IDENTICAL_VALUE_PROPERTY_PREFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.Constants.SUB_INTERFACE_PROPERTY_VALUE_PREFIX;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getComputeTypeSuffix;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getConnectedComputeConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewComputeNodeTemplateId;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewPortNodeTemplateId;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getNewSubInterfaceNodeTemplateId;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getSubInterfacePortTemplateConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getSubInterfaceTemplateConsolidationDataList;
+import static org.openecomp.sdc.translator.services.heattotosca.UnifiedCompositionUtil.getSubInterfaceTypeSuffix;
+
+import com.google.common.collect.ListMultimap;
 import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
@@ -31,8 +46,6 @@ import org.openecomp.config.api.ConfigurationManager;
 import org.openecomp.core.utilities.CommonMethods;
 import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
 import org.openecomp.sdc.heat.services.HeatConstants;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
 import org.openecomp.sdc.tosca.datatypes.ToscaGroupType;
 import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
@@ -49,9 +62,9 @@ import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
 import org.openecomp.sdc.tosca.datatypes.model.PropertyType;
 import org.openecomp.sdc.tosca.datatypes.model.RelationshipTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
-import org.openecomp.sdc.tosca.datatypes.model.RequirementDefinition;
 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.SubstitutionMapping;
+import org.openecomp.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt;
 import org.openecomp.sdc.tosca.datatypes.model.heatextend.PropertyTypeExt;
 import org.openecomp.sdc.tosca.services.DataModelUtil;
 import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
@@ -63,6 +76,9 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.compositi
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionMode;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedSubstitutionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.CommandImplNames;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData;
@@ -72,11 +88,12 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
+import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -86,42 +103,41 @@ import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.regex.Pattern;
-
-import static org.openecomp.sdc.tosca.services.DataModelUtil.getClonedObject;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.PORT_IDENTICAL_VALUE_PROPERTY_PREFIX;
+import java.util.stream.Collectors;
 
 public class UnifiedCompositionService {
 
-  protected static Logger logger =
-      (Logger) LoggerFactory.getLogger(UnifiedCompositionService.class);
-  private static Map<String, ImplementationConfiguration> unifiedCompositionImplMap;
+  private static final Map<String, ImplementationConfiguration> unifiedCompositionImplMap;
+
+  private static final EnumMap<UnifiedCompositionEntity, String> unifiedSubstitutionNodeTemplateIdGeneratorImplMap;
 
   static {
     Configuration config = ConfigurationManager.lookup();
     unifiedCompositionImplMap =
         config.populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
             ConfigConstants.UNIFIED_COMPOSITION_IMPL_KEY, ImplementationConfiguration.class);
+    unifiedSubstitutionNodeTemplateIdGeneratorImplMap = new EnumMap<>(UnifiedCompositionEntity.class);
+    initNodeTemplateIdGeneratorImplMap();
+  }
 
+  private static void initNodeTemplateIdGeneratorImplMap() {
+    unifiedSubstitutionNodeTemplateIdGeneratorImplMap.put(COMPUTE, CommandImplNames
+        .COMPUTE_NEW_NODE_TEMPLATE_ID_GENERATOR_IMPL);
+    unifiedSubstitutionNodeTemplateIdGeneratorImplMap.put(PORT, CommandImplNames
+        .PORT_NEW_NODE_TEMPLATE_ID_GENERATOR_IMPL);
+    unifiedSubstitutionNodeTemplateIdGeneratorImplMap.put(SUB_INTERFACE, CommandImplNames
+        .SUB_INTERFACE_NEW_NODE_TEMPLATE_ID_GENERATOR_IMPL);
   }
 
-  private ConsolidationService consolidationService = new ConsolidationService();
+  private final ConsolidationService consolidationService = new ConsolidationService();
 
   private static List<EntityConsolidationData> getPortConsolidationDataList(
       List<String> portIds,
       List<UnifiedCompositionData> unifiedCompositionDataList) {
-    List<EntityConsolidationData> portConsolidationDataList = new ArrayList<>();
-    for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
-      for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
-          .getPortTemplateConsolidationDataList()) {
-        if (portIds.contains(portTemplateConsolidationData.getNodeTemplateId())) {
-          portConsolidationDataList.add(portTemplateConsolidationData);
-        }
-      }
-    }
-    return portConsolidationDataList;
+    return unifiedCompositionDataList.stream()
+        .flatMap(unifiedCompositionData -> unifiedCompositionData.getPortTemplateConsolidationDataList().stream())
+        .filter(portTemplateConsolidationData -> portIds.contains(portTemplateConsolidationData.getNodeTemplateId()))
+        .collect(Collectors.toList());
   }
 
   /**
@@ -170,9 +186,7 @@ public class UnifiedCompositionService {
     if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
       return Optional.empty();
     }
-    UnifiedCompositionData unifiedCompositionData = unifiedCompositionDataList.get(0);
-    String templateName =
-        getTemplateName(serviceTemplate, unifiedCompositionData, substitutionNodeTypeId, index);
+    String templateName = getTemplateName(substitutionNodeTypeId, index);
     ServiceTemplate substitutionServiceTemplate =
         HeatToToscaUtil.createInitSubstitutionServiceTemplate(templateName);
 
@@ -183,11 +197,14 @@ public class UnifiedCompositionService {
             context);
     handlePorts(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
         computeNodeType, context);
-    createOutputParameters(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
-        computeNodeType, context);
+
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(serviceTemplate,
+        substitutionServiceTemplate, unifiedCompositionDataList, context);
+    handleSubInterfaces(unifiedCompositionTo);
+    createOutputParameters(unifiedCompositionTo, computeNodeType);
     NodeType substitutionGlobalNodeType =
         handleSubstitutionGlobalNodeType(serviceTemplate, substitutionServiceTemplate,
-            context, unifiedCompositionData, substitutionNodeTypeId, index);
+            context, substitutionNodeTypeId);
 
     HeatToToscaUtil.handleSubstitutionMapping(context,
         substitutionNodeTypeId,
@@ -224,9 +241,13 @@ public class UnifiedCompositionService {
     directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
     substitutionNodeTemplate.setDirectives(directiveList);
     substitutionNodeTemplate.setType(substituteNodeTypeId);
-    Optional<Map<String, Object>> abstractSubstitutionProperties =
-        createAbstractSubstitutionProperties(serviceTemplate,
-            substitutionServiceTemplate, unifiedCompositionDataList, context);
+    Map<String, ParameterDefinition> substitutionTemplateInputs = DataModelUtil
+        .getInputParameters(substitutionServiceTemplate);
+    Optional<Map<String, Object>> abstractSubstitutionProperties = Optional.empty();
+    if (Objects.nonNull(substitutionTemplateInputs)) {
+      abstractSubstitutionProperties = createAbstractSubstitutionProperties(serviceTemplate,
+          substitutionTemplateInputs, unifiedCompositionDataList, context);
+    }
     abstractSubstitutionProperties.ifPresent(substitutionNodeTemplate::setProperties);
 
     //Add substitution filtering property
@@ -237,9 +258,7 @@ public class UnifiedCompositionService {
         substitutionNodeTemplate, count);
     //Add index_value property
     addIndexValueProperty(substitutionNodeTemplate);
-    String substituteNodeTemplateId =
-        getSubstituteNodeTemplateId(serviceTemplate, unifiedCompositionDataList.get(0),
-            substituteNodeTypeId, index);
+    String substituteNodeTemplateId = getSubstituteNodeTemplateId(substituteNodeTypeId, index);
     //Add node template id and related abstract node template id in context
     addUnifiedSubstitionData(context, serviceTemplate, unifiedCompositionDataList,
         substituteNodeTemplateId);
@@ -287,18 +306,27 @@ public class UnifiedCompositionService {
       List<UnifiedCompositionData> unifiedCompositionDataList,
       TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
+      //Clean compute node template data from top level service template
       ComputeTemplateConsolidationData computeTemplateConsolidationData =
           unifiedCompositionData.getComputeTemplateConsolidationData();
       cleanServiceTemplate(serviceTemplate, computeTemplateConsolidationData, context);
 
+      //Clean port node template data from top level service template
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
           getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
           portTemplateConsolidationDataList) {
         cleanServiceTemplate(serviceTemplate, portTemplateConsolidationData, context);
       }
-    }
 
+      //Clean sub-interface node template data from top level service template
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+      for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+          subInterfaceTemplateConsolidationDataList) {
+        cleanServiceTemplate(serviceTemplate, subInterfaceTemplateConsolidationData, context);
+      }
+    }
   }
 
   /**
@@ -322,10 +350,10 @@ public class UnifiedCompositionService {
   }
 
   public void updateSubstitutionNodeTypePrefix(ServiceTemplate substitutionServiceTemplate) {
-    Map<String, NodeTemplate> node_templates =
+    Map<String, NodeTemplate> nodeTemplates =
         substitutionServiceTemplate.getTopology_template().getNode_templates();
 
-    for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : node_templates.entrySet()) {
+    for (Map.Entry<String, NodeTemplate> nodeTemplateEntry : nodeTemplates.entrySet()) {
       String nodeTypeId = nodeTemplateEntry.getValue().getType();
       NodeType origNodeType = substitutionServiceTemplate.getNode_types().get(nodeTypeId);
       if (Objects.nonNull(origNodeType)
@@ -409,8 +437,7 @@ public class UnifiedCompositionService {
         nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
     String nodeTypeId = substitutionMappings.getNode_type();
 
-    Optional<String> newNestedNodeTypeId =
-        getNewNestedNodeTypeId(mainServiceTemplate, nestedServiceTemplate, context);
+    Optional<String> newNestedNodeTypeId = getNewNestedNodeTypeId(nestedServiceTemplate, context);
 
     ServiceTemplate globalSubstitutionServiceTemplate =
         context.getGlobalSubstitutionServiceTemplate();
@@ -480,7 +507,7 @@ public class UnifiedCompositionService {
               .getPortTemplateConsolidationData(portNodeTemplateId));
 
           handleNodeTypeProperties(nestedServiceTemplate,
-              portEntityConsolidationDataList, portNodeTemplate, UnifiedCompositionEntity.Port,
+              portEntityConsolidationDataList, portNodeTemplate, UnifiedCompositionEntity.PORT,
               null, context);
         }
       }
@@ -499,8 +526,6 @@ public class UnifiedCompositionService {
 
     updateNodeTypeProperties(nestedServiceTemplate, globalSubstitutionServiceTemplate,
         indexedNewNestedNodeTypeId);
-    //addComputeNodeTypeToGlobalST();
-
   }
 
   private void updateNodeTypeProperties(ServiceTemplate nestedServiceTemplate,
@@ -555,7 +580,7 @@ public class UnifiedCompositionService {
             ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
             newNestedNodeTypeId);
     return globalNodeTypeIndex > 0 ? newNestedNodeTypeId + "_"
-        + String.valueOf(globalNodeTypeIndex) : newNestedNodeTypeId;
+        + globalNodeTypeIndex : newNestedNodeTypeId;
   }
 
   private void updateUnifiedNestedTemplates(ServiceTemplate mainServiceTemplate,
@@ -615,21 +640,19 @@ public class UnifiedCompositionService {
   }
 
   public void handleComplexVfcType(ServiceTemplate serviceTemplate, TranslationContext context) {
-    SubstitutionMapping substitution_mappings =
+    SubstitutionMapping substitutionMapping =
         serviceTemplate.getTopology_template().getSubstitution_mappings();
 
-    if (Objects.isNull(substitution_mappings)) {
+    if (Objects.isNull(substitutionMapping)) {
       return;
     }
 
     ServiceTemplate globalSubstitutionServiceTemplate =
         context.getGlobalSubstitutionServiceTemplate();
 
-    String substitutionNT = substitution_mappings.getNode_type();
+    String substitutionNT = substitutionMapping.getNode_type();
     if (globalSubstitutionServiceTemplate.getNode_types().containsKey(substitutionNT)) {
-      //todo - remove comment after integration with AT&T
-//      globalSubstitutionServiceTemplate.getNode_types().get(substitutionNT).setDerived_from
-//          (ToscaNodeType.COMPLEX_VFC_NODE_TYPE);
+      //This needs to be done when catalog is ready for complex VFC
     }
   }
 
@@ -666,6 +689,30 @@ public class UnifiedCompositionService {
               newPortNodeTemplateId, portNodesConnectedOut, context);
         }
       }
+      //For sub-interface
+      //Add requirements in the abstract node template for nodes connected out for ports
+      updateSubInterfaceNodesConnectedOut(serviceTemplate, unifiedCompositionData,
+          computeTemplateConsolidationData, computeType, context);
+    }
+  }
+
+  private void updateSubInterfaceNodesConnectedOut(ServiceTemplate serviceTemplate,
+                                                   UnifiedCompositionData unifiedCompositionData,
+                                                   ComputeTemplateConsolidationData computeTemplateConsolidationData,
+                                                   String computeType,
+                                                   TranslationContext context) {
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+    for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+        subInterfaceTemplateConsolidationDataList) {
+      String newSubInterfaceNodeTemplateId = getNewSubInterfaceNodeTemplateId(serviceTemplate, computeType,
+          computeTemplateConsolidationData, subInterfaceTemplateConsolidationData, context);
+      Map<String, List<RequirementAssignmentData>> subInterfaceNodesConnectedOut =
+          subInterfaceTemplateConsolidationData.getNodesConnectedOut();
+      if (subInterfaceNodesConnectedOut != null) {
+        updateRequirementInAbstractNodeTemplate(serviceTemplate, subInterfaceTemplateConsolidationData,
+            newSubInterfaceNodeTemplateId, subInterfaceNodesConnectedOut, context);
+      }
     }
   }
 
@@ -694,13 +741,13 @@ public class UnifiedCompositionService {
     }
 
     String singleComputeId = computeType.getAllComputeNodeTemplateIds().iterator().next();
-    if (Objects.nonNull(singleComputeId)) {
+    if (Objects.nonNull(singleComputeId) && (Objects.nonNull(nestedTemplateConsolidationData))) {
       updateRequirementInNestedNodeTemplate(serviceTemplate, nestedTemplateConsolidationData,
           singleComputeId, nodesConnectedOut);
     }
   }
 
-  protected void updNodesConnectedInConnectivity(ServiceTemplate serviceTemplate,
+  private void updNodesConnectedInConnectivity(ServiceTemplate serviceTemplate,
                                                  List<UnifiedCompositionData>
                                                      unifiedCompositionDataList,
                                                  TranslationContext context) {
@@ -725,6 +772,10 @@ public class UnifiedCompositionService {
         updNodesConnectedInConnectivity(serviceTemplate, portTemplateConsolidationData,
             newPortNodeTemplateId, context, false);
       }
+
+      //Update requirements in the node template which pointing to the sub-interface
+      updateSubInterfaceNodesConnectedIn(serviceTemplate, unifiedCompositionData,
+          computeTemplateConsolidationData, computeType, context);
     }
   }
 
@@ -754,7 +805,7 @@ public class UnifiedCompositionService {
         //Update the requirement assignment object in the original node template
         if (isNested) {
           updateRequirementForNestedCompositionNodesConnectedIn(serviceTemplate,
-              requirementAssignmentData, entityConsolidationData, newNodeTemplateId, context);
+              requirementAssignmentData, newNodeTemplateId);
         } else {
           updateRequirementForNodesConnectedIn(serviceTemplate, requirementAssignmentData,
               entityConsolidationData, entry.getKey(), newNodeTemplateId, context);
@@ -764,6 +815,22 @@ public class UnifiedCompositionService {
     }
   }
 
+  private void updateSubInterfaceNodesConnectedIn(ServiceTemplate serviceTemplate,
+                                                  UnifiedCompositionData unifiedCompositionData,
+                                                  ComputeTemplateConsolidationData computeTemplateConsolidationData,
+                                                  String computeType,
+                                                  TranslationContext context) {
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+    for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+        subInterfaceTemplateConsolidationDataList) {
+      String newSubInterfaceNodeTemplateId = getNewSubInterfaceNodeTemplateId(serviceTemplate, computeType,
+          computeTemplateConsolidationData, subInterfaceTemplateConsolidationData, context);
+      updNodesConnectedInConnectivity(serviceTemplate, subInterfaceTemplateConsolidationData,
+          newSubInterfaceNodeTemplateId, context, false);
+    }
+  }
+
   protected void updNestedCompositionNodesConnectedInConnectivity(
       ServiceTemplate serviceTemplate,
       UnifiedCompositionData unifiedCompositionData,
@@ -781,24 +848,7 @@ public class UnifiedCompositionService {
 
   }
 
-//  protected void updNestedCompositionNodesConnectedOutConnectivity(
-//      ServiceTemplate serviceTemplate,
-//      UnifiedCompositionData unifiedCompositionData,
-//      TranslationContext context) {
-//    NestedTemplateConsolidationData nestedTemplateConsolidationData = unifiedCompositionData
-//        .getNestedTemplateConsolidationData();
-//    //Update requirements in the node template which pointing to the nested nodes
-//    String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
-//    Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
-//        serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
-//    newNestedNodeTemplateId.ifPresent(
-//        newNestedNodeTemplateIdVal -> updNodesConnectedOutConnectivity(serviceTemplate,
-//            nestedTemplateConsolidationData,
-//            newNestedNodeTemplateIdVal, context, true));
-//
-//  }
-
-  protected void updVolumeConnectivity(ServiceTemplate serviceTemplate,
+  private void updVolumeConnectivity(ServiceTemplate serviceTemplate,
                                        List<UnifiedCompositionData>
                                            unifiedCompositionDataList,
                                        TranslationContext context) {
@@ -817,7 +867,7 @@ public class UnifiedCompositionService {
     }
   }
 
-  protected void updGroupsConnectivity(ServiceTemplate serviceTemplate,
+  private void updGroupsConnectivity(ServiceTemplate serviceTemplate,
                                        List<UnifiedCompositionData>
                                            unifiedCompositionDataList,
                                        TranslationContext context) {
@@ -825,21 +875,23 @@ public class UnifiedCompositionService {
       ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
           .getComputeTemplateConsolidationData();
       //Add requirements in the abstract node template for nodes connected in for computes
-      String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-          computeTemplateConsolidationData.getNodeTemplateId());
       updGroupsConnectivity(serviceTemplate, computeTemplateConsolidationData, context);
 
-      String computeType = getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData
-          .getNodeTemplateId());
       //Add requirements in the abstract node template for nodes connected in for ports
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
           getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
           portTemplateConsolidationDataList) {
-        String newPortNodeTemplateId = getNewPortNodeTemplateId(portTemplateConsolidationData
-            .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
         updGroupsConnectivity(serviceTemplate, portTemplateConsolidationData, context);
       }
+
+      //Add requirements in the abstract node template for nodes connected in for subInterface
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+      for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+          subInterfaceTemplateConsolidationDataList) {
+        updGroupsConnectivity(serviceTemplate, subInterfaceTemplateConsolidationData, context);
+      }
     }
   }
 
@@ -853,25 +905,27 @@ public class UnifiedCompositionService {
     String abstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(
         serviceTemplate, entityConsolidationData.getNodeTemplateId());
     Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template().getGroups();
-    if (groups != null) {
-      for (String groupId : groupIds) {
-        GroupDefinition groupDefinition = groups.get(groupId);
-        if (groupDefinition != null) {
-          List<String> groupMembers = groupDefinition.getMembers();
-          if (groupMembers.contains(oldNodeTemplateId)) {
-            //Replace the old node template id
-            groupMembers.remove(oldNodeTemplateId);
-            if (!groupMembers.contains(abstractNodeTemplateId)) {
-              //Add the abstract node template id if not already present
-              groupMembers.add(abstractNodeTemplateId);
-            }
-          }
+    if (groups == null) {
+      return;
+    }
+    for (String groupId : groupIds) {
+      GroupDefinition groupDefinition = groups.get(groupId);
+      if (groupDefinition == null) {
+        continue;
+      }
+      List<String> groupMembers = groupDefinition.getMembers();
+      if (groupMembers.contains(oldNodeTemplateId)) {
+        //Replace the old node template id
+        groupMembers.remove(oldNodeTemplateId);
+        if (!groupMembers.contains(abstractNodeTemplateId)) {
+          //Add the abstract node template id if not already present
+          groupMembers.add(abstractNodeTemplateId);
         }
       }
     }
   }
 
-  protected void updOutputParamGetAttrInConnectivity(
+  private void updOutputParamGetAttrInConnectivity(
       ServiceTemplate serviceTemplate, List<UnifiedCompositionData> unifiedComposotionDataList,
       TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedComposotionDataList) {
@@ -899,10 +953,30 @@ public class UnifiedCompositionService {
             portTemplateConsolidationData.getNodeTemplateId(), newPortNodeTemplateId, context,
             false);
       }
+
+      updateSubInterfaceOutputParamGetAttrIn(serviceTemplate, unifiedCompositionData,
+          computeTemplateConsolidationData, computeType, context);
+    }
+  }
+
+  private void updateSubInterfaceOutputParamGetAttrIn(ServiceTemplate serviceTemplate,
+                                                      UnifiedCompositionData unifiedCompositionData,
+                                                      ComputeTemplateConsolidationData computeTemplateConsolidationData,
+                                                      String computeType,
+                                                      TranslationContext context) {
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+    for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+        subInterfaceTemplateConsolidationDataList) {
+      String newSubInterfaceNodeTemplateId = getNewSubInterfaceNodeTemplateId(serviceTemplate, computeType,
+          computeTemplateConsolidationData, subInterfaceTemplateConsolidationData, context);
+      updOutputParamGetAttrInConnectivity(serviceTemplate, subInterfaceTemplateConsolidationData,
+          subInterfaceTemplateConsolidationData.getNodeTemplateId(), newSubInterfaceNodeTemplateId, context,
+          false);
     }
   }
 
-  protected void updNodesGetAttrInConnectivity(
+  private void updNodesGetAttrInConnectivity(
       ServiceTemplate serviceTemplate,
       List<UnifiedCompositionData> unifiedComposotionDataList,
       TranslationContext context) {
@@ -934,6 +1008,28 @@ public class UnifiedCompositionService {
             portTemplateConsolidationData.getNodeTemplateId(),
             newPotNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
       }
+
+      updateSubInterfaceNodesGetAttrIn(serviceTemplate, unifiedCompositionData,
+          computeTemplateConsolidationData, computeType, consolidationNodeTemplateIdAndType, context);
+    }
+  }
+
+  private void updateSubInterfaceNodesGetAttrIn(ServiceTemplate serviceTemplate,
+                                                UnifiedCompositionData unifiedCompositionData,
+                                                ComputeTemplateConsolidationData computeTemplateConsolidationData,
+                                                String computeType,
+                                                Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
+                                                TranslationContext context) {
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+    for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+        subInterfaceTemplateConsolidationDataList) {
+      String newSubInterfaceNodeTemplateId = getNewSubInterfaceNodeTemplateId(serviceTemplate, computeType,
+          computeTemplateConsolidationData, subInterfaceTemplateConsolidationData, context);
+      updNodeGetAttrInConnectivity(serviceTemplate, subInterfaceTemplateConsolidationData,
+          subInterfaceTemplateConsolidationData.getNodeTemplateId(),
+          newSubInterfaceNodeTemplateId, context,
+          consolidationNodeTemplateIdAndType, false);
     }
   }
 
@@ -1018,9 +1114,7 @@ public class UnifiedCompositionService {
   private void updateRequirementForNestedCompositionNodesConnectedIn(
       ServiceTemplate serviceTemplate,
       RequirementAssignmentData requirementAssignmentData,
-      EntityConsolidationData entityConsolidationData,
-      String newNodeTemplateId,
-      TranslationContext context) {
+      String newNodeTemplateId) {
     ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
     String newAbstractUnifiedNodeTemplateId = newNodeTemplateId;
     RequirementAssignment requirementAssignment = requirementAssignmentData
@@ -1064,11 +1158,10 @@ public class UnifiedCompositionService {
       String capabilityId = entry.getKey();
       CapabilityDefinition capabilityDefinition = entry.getValue();
       String capabilityType = capabilityDefinition.getType();
-      if (capabilityType.equals(requirementAssignment.getCapability())) {
+      if (capabilityType.equals(requirementAssignment.getCapability())
+          && capabilityId.endsWith(newNodeTemplateId)) {
         //Matching capability type found..Check if the id ends with new node template id
-        if (capabilityId.endsWith(newNodeTemplateId)) {
-          return Optional.ofNullable(capabilityId);
-        }
+        return Optional.ofNullable(capabilityId);
       }
     }
     return Optional.empty();
@@ -1154,38 +1247,6 @@ public class UnifiedCompositionService {
     }
   }
 
-  private NodeTemplate getAbstractNodeTemplate(
-      ServiceTemplate serviceTemplate,
-      UnifiedCompositionEntity unifiedCompositionEntity,
-      ComputeTemplateConsolidationData computeTemplateConsolidationData,
-      PortTemplateConsolidationData portTemplateConsolidationData,
-      TranslationContext context) {
-    String abstractNodeTemplateId =
-        getAbstractNodeTemplateId(serviceTemplate, unifiedCompositionEntity,
-            computeTemplateConsolidationData, portTemplateConsolidationData, context);
-
-    return DataModelUtil.getNodeTemplate(serviceTemplate,
-        abstractNodeTemplateId);
-  }
-
-  private String getAbstractNodeTemplateId(
-      ServiceTemplate serviceTemplate,
-      UnifiedCompositionEntity unifiedCompositionEntity,
-      ComputeTemplateConsolidationData computeTemplateConsolidationData,
-      PortTemplateConsolidationData portTemplateConsolidationData,
-      TranslationContext context) {
-    switch (unifiedCompositionEntity) {
-      case Compute:
-        return context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
-            computeTemplateConsolidationData.getNodeTemplateId());
-      case Port:
-        return context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
-            portTemplateConsolidationData.getNodeTemplateId());
-      default:
-        return null;
-    }
-  }
-
   private void updNodeGetAttrInConnectivity(
       ServiceTemplate serviceTemplate,
       EntityConsolidationData entityConsolidationData,
@@ -1198,13 +1259,14 @@ public class UnifiedCompositionService {
       return;
     }
 
-    for (String sourceNodeTemplateId : nodesGetAttrIn.keySet()) {
+    for (Map.Entry<String, List<GetAttrFuncData>> nodesGetAttrInEntry : nodesGetAttrIn.entrySet()) {
+      String sourceNodeTemplateId = nodesGetAttrInEntry.getKey();
       NodeTemplate sourceNodeTemplate =
           DataModelUtil.getNodeTemplate(serviceTemplate, sourceNodeTemplateId);
       if (!isNested && consolidationNodeTemplateIdAndType.keySet().contains(sourceNodeTemplateId)) {
         continue;
       }
-      List<GetAttrFuncData> getAttrFuncDataList = nodesGetAttrIn.get(sourceNodeTemplateId);
+      List<GetAttrFuncData> getAttrFuncDataList = nodesGetAttrInEntry.getValue();
       for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
         Object propertyValue =
             DataModelUtil.getPropertyValue(sourceNodeTemplate, getAttrFuncData.getFieldName());
@@ -1237,12 +1299,8 @@ public class UnifiedCompositionService {
     }
   }
 
-  private String getTemplateName(ServiceTemplate serviceTemplate,
-                                 UnifiedCompositionData unifiedCompositionData,
-                                 String nodeTypeId,
+  private String getTemplateName(String nodeTypeId,
                                  Integer index) {
-    ComputeTemplateConsolidationData computeTemplateConsolidationData =
-        unifiedCompositionData.getComputeTemplateConsolidationData();
     String computeType = getComputeTypeSuffix(nodeTypeId);
     String templateName = "Nested_" + computeType;
     if (Objects.nonNull(index)) {
@@ -1251,23 +1309,6 @@ public class UnifiedCompositionService {
     return templateName;
   }
 
-  private String getComputeTypeSuffix(ServiceTemplate serviceTemplate,
-                                      String computeNodeTemplateId) {
-    NodeTemplate computeNodeTemplate =
-        DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
-    return getComputeTypeSuffix(computeNodeTemplate.getType());
-  }
-
-  /**
-   * Gets compute type.
-   *
-   * @param computeType the compute node type abc.def.vFSB
-   * @return the compute type e.g.:vFSB
-   */
-  private String getComputeTypeSuffix(String computeType) {
-    return DataModelUtil.getNamespaceSuffix(computeType);
-  }
-
   private void updOutputParamGetAttrInConnectivity(ServiceTemplate serviceTemplate,
                                                    EntityConsolidationData entityConsolidationData,
                                                    String oldNodeTemplateId,
@@ -1334,13 +1375,9 @@ public class UnifiedCompositionService {
           return true;
         }
       }
-//      Map.Entry<String, Object> functionMapEntry =
-//          (Map.Entry<String, Object>) ((Map) valueObject).entrySet().iterator().next();
-//      return isIncludeToscaFunc(functionMapEntry.getValue(), toscaFunction);
-
     } else if (valueObject instanceof List) {
       for (Object valueEntity : (List) valueObject) {
-        if (isIncludeToscaFunc(valueEntity, toscaFunction) == true) {
+        if (isIncludeToscaFunc(valueEntity, toscaFunction)) {
           return true;
         }
       }
@@ -1348,19 +1385,18 @@ public class UnifiedCompositionService {
     return false;
   }
 
-  private void createOutputParameters(ServiceTemplate serviceTemplate,
-                                      ServiceTemplate substitutionServiceTemplate,
-                                      List<UnifiedCompositionData> unifiedCompositionDataList,
-                                      String computeNodeType, TranslationContext context) {
+  private void createOutputParameters(UnifiedCompositionTo unifiedCompositionTo,
+                                      String computeNodeType) {
 
-    createOutputParametersForCompute(serviceTemplate, substitutionServiceTemplate,
-        unifiedCompositionDataList, context);
-    createOutputParameterForPorts(serviceTemplate, substitutionServiceTemplate,
-        unifiedCompositionDataList, computeNodeType, context);
+    createOutputParametersForCompute(unifiedCompositionTo.getServiceTemplate(),
+        unifiedCompositionTo.getSubstitutionServiceTemplate(), unifiedCompositionTo.getUnifiedCompositionDataList(),
+        unifiedCompositionTo.getContext());
+    createOutputParameterForPorts(unifiedCompositionTo.getSubstitutionServiceTemplate(),
+        unifiedCompositionTo.getUnifiedCompositionDataList(), computeNodeType, unifiedCompositionTo.getContext());
+    createOutputParameterForSubInterfaces(unifiedCompositionTo, computeNodeType);
   }
 
   private void createOutputParameterForPorts(
-      ServiceTemplate serviceTemplate,
       ServiceTemplate substitutionServiceTemplate,
       List<UnifiedCompositionData> unifiedCompositionDataList,
       String connectedComputeNodeType,
@@ -1379,28 +1415,31 @@ public class UnifiedCompositionService {
                 connectedComputeNodeType,
                 unifiedCompositionData.getComputeTemplateConsolidationData());
         addOutputParameters(portTemplateConsolidationData, newPortNodeTemplateId,
-            serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
+            substitutionServiceTemplate, unifiedCompositionDataList, context);
       }
     }
   }
 
-  //The ID should be <vm_type>_<port_type> or <vm_type>_<portNodeTemplateId>
-  private String getNewPortNodeTemplateId(
-      String portNodeTemplateId,
-      String connectedComputeNodeType,
-      ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+  private void createOutputParameterForSubInterfaces(UnifiedCompositionTo unifiedCompositionTo,
+                                                     String connectedComputeNodeType) {
+    for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionTo.getUnifiedCompositionDataList()) {
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+      if (CollectionUtils.isEmpty(subInterfaceTemplateConsolidationDataList)) {
+        return;
+      }
 
-    StringBuilder newPortNodeTemplateId = new StringBuilder();
-    String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
-    newPortNodeTemplateId.append(DataModelUtil.getNamespaceSuffix(connectedComputeNodeType));
-    if (computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
-      //single port
-      newPortNodeTemplateId.append("_").append(portNodeTemplateId);
-    } else {
-      //consolidation port
-      newPortNodeTemplateId.append("_").append(portType);
+      for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+          subInterfaceTemplateConsolidationDataList) {
+        String newSubInterfaceNodeTemplateId = getNewSubInterfaceNodeTemplateId(unifiedCompositionTo
+                .getServiceTemplate(), connectedComputeNodeType, unifiedCompositionData
+                .getComputeTemplateConsolidationData(), subInterfaceTemplateConsolidationData,
+            unifiedCompositionTo.getContext());
+        addOutputParameters(subInterfaceTemplateConsolidationData, newSubInterfaceNodeTemplateId,
+            unifiedCompositionTo.getSubstitutionServiceTemplate(), unifiedCompositionTo.getUnifiedCompositionDataList(),
+            unifiedCompositionTo.getContext());
+      }
     }
-    return newPortNodeTemplateId.toString();
   }
 
   private void createOutputParametersForCompute(
@@ -1417,33 +1456,31 @@ public class UnifiedCompositionService {
           getNewComputeNodeTemplateId(serviceTemplate,
               computeTemplateConsolidationData.getNodeTemplateId());
       addOutputParameters(computeTemplateConsolidationData, newComputeNodeTemplateId,
-          serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
+           substitutionServiceTemplate, unifiedCompositionDataList, context);
     }
   }
 
   private void addOutputParameters(EntityConsolidationData entityConsolidationData,
                                    String newNodeTemplateId,
-                                   ServiceTemplate serviceTemplate,
                                    ServiceTemplate substitutionServiceTemplate,
                                    List<UnifiedCompositionData> unifiedCompositionDataList,
                                    TranslationContext context) {
-    handleNodesGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
-        substitutionServiceTemplate, unifiedCompositionDataList, context);
+    handleNodesGetAttrIn(entityConsolidationData, newNodeTemplateId, substitutionServiceTemplate,
+        unifiedCompositionDataList, context);
 
-    handleOutputParamGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
+    handleOutputParamGetAttrIn(entityConsolidationData, newNodeTemplateId,
         substitutionServiceTemplate, context);
   }
 
   private void handleOutputParamGetAttrIn(EntityConsolidationData entityConsolidationData,
                                           String newNodeTemplateId,
-                                          ServiceTemplate serviceTemplate,
                                           ServiceTemplate substitutionServiceTemplate,
                                           TranslationContext context) {
     List<GetAttrFuncData> outputParametersGetAttrIn =
         entityConsolidationData.getOutputParametersGetAttrIn();
     if (!CollectionUtils.isEmpty(outputParametersGetAttrIn)) {
       for (GetAttrFuncData getAttrFuncData : outputParametersGetAttrIn) {
-        createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
+        createAndAddOutputParameter(newNodeTemplateId,
             substitutionServiceTemplate, getAttrFuncData, context);
       }
     }
@@ -1451,29 +1488,28 @@ public class UnifiedCompositionService {
 
   private void handleNodesGetAttrIn(EntityConsolidationData entityConsolidationData,
                                     String newNodeTemplateId,
-                                    ServiceTemplate serviceTemplate,
                                     ServiceTemplate substitutionServiceTemplate,
                                     List<UnifiedCompositionData> unifiedCompositionDataList,
                                     TranslationContext context) {
     Map<String, List<GetAttrFuncData>> getAttrIn = entityConsolidationData.getNodesGetAttrIn();
-
-    if (!MapUtils.isEmpty(getAttrIn)) {
-      Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
-          getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
-      for (String sourceNodeTemplateId : getAttrIn.keySet()) {
-        if (!consolidationNodeTemplateIdAndType.keySet().contains(sourceNodeTemplateId)) {
-          List<GetAttrFuncData> getAttrFuncDataList = getAttrIn.get(sourceNodeTemplateId);
-          for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
-            createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
-                substitutionServiceTemplate, getAttrFuncData, context);
-          }
+    if (MapUtils.isEmpty(getAttrIn)) {
+      return;
+    }
+    Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
+        getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
+    for (Map.Entry<String, List<GetAttrFuncData>> getAttrInEntry : getAttrIn.entrySet()) {
+      String sourceNodeTemplateId = getAttrInEntry.getKey();
+      if (!consolidationNodeTemplateIdAndType.keySet().contains(sourceNodeTemplateId)) {
+        List<GetAttrFuncData> getAttrFuncDataList = getAttrInEntry.getValue();
+        for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
+          createAndAddOutputParameter(newNodeTemplateId,
+              substitutionServiceTemplate, getAttrFuncData, context);
         }
       }
     }
   }
 
-  private void createAndAddOutputParameter(EntityConsolidationData entityConsolidationData,
-                                           String newNodeTemplateId,
+  private void createAndAddOutputParameter(String newNodeTemplateId,
                                            ServiceTemplate substitutionServiceTemplate,
                                            GetAttrFuncData getAttrFuncData,
                                            TranslationContext context) {
@@ -1499,8 +1535,8 @@ public class UnifiedCompositionService {
     NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(substitutionServiceTemplate,
         newNodeTemplateId);
     //Get the type and entry schema of the output parameter from the node type flat hierarchy
-    String outputParameterType = null;
-    EntrySchema outputParameterEntrySchema = null;
+    String outputParameterType;
+    EntrySchema outputParameterEntrySchema;
     NodeType nodeTypeWithFlatHierarchy =
         HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
             substitutionServiceTemplate, context);
@@ -1524,18 +1560,6 @@ public class UnifiedCompositionService {
     outputParameter.setEntry_schema(outputParameterEntrySchema);
   }
 
-  private String getNewInputParameterType(NodeTemplate nodeTemplate,
-                                          ServiceTemplate serviceTemplate,
-                                          String inputParameterName,
-                                          TranslationContext context) {
-    NodeType nodeTypeWithFlatHierarchy =
-        HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
-            serviceTemplate, context);
-    String parameterType = nodeTypeWithFlatHierarchy.getProperties()
-        .get(inputParameterName).getType();
-    return getUnifiedInputParameterType(parameterType);
-  }
-
   private AttributeDefinition getOutputParameterDefinitionFromAttributes(NodeType
                                                                              nodeTypeWithFlatHierarchy,
                                                                          String outputParameterName) {
@@ -1548,29 +1572,6 @@ public class UnifiedCompositionService {
     return outputParameterDefinition;
   }
 
-  private String getUnifiedInputParameterType(String parameterType) {
-    String unifiedInputParameterType = null;
-    if (Objects.nonNull(parameterType)) {
-      if (parameterType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.TIMESTAMP.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.NULL.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_SIZE.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_FREQUENCY.getDisplayName())) {
-        unifiedInputParameterType = parameterType.toLowerCase();
-      } else if (parameterType.equalsIgnoreCase(PropertyType.MAP.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())
-          || parameterType.equalsIgnoreCase(PropertyTypeExt.JSON.getDisplayName())) {
-        unifiedInputParameterType = PropertyTypeExt.JSON.getDisplayName();
-      } else {
-        unifiedInputParameterType = parameterType;
-      }
-    }
-    return unifiedInputParameterType;
-  }
-
   private String getNewSubstitutionOutputParameterId(String newNodeTemplateId,
                                                      String attributeName) {
     return newNodeTemplateId + "_" + attributeName;
@@ -1599,6 +1600,16 @@ public class UnifiedCompositionService {
               substituteNodeTemplateId);
         }
       }
+      //Add Sub-interface template mapping information
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+      if (CollectionUtils.isNotEmpty(subInterfaceTemplateConsolidationDataList)) {
+        for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+            subInterfaceTemplateConsolidationDataList) {
+          context.addUnifiedSubstitutionData(serviceTemplateFileName,
+              subInterfaceTemplateConsolidationData.getNodeTemplateId(), substituteNodeTemplateId);
+        }
+      }
     }
   }
 
@@ -1617,14 +1628,8 @@ public class UnifiedCompositionService {
     nodeTemplate.setProperties(properties);
   }
 
-  private String getSubstituteNodeTemplateId(ServiceTemplate serviceTemplate,
-                                             UnifiedCompositionData unifiedCompositionData,
-                                             String nodeTypeId,
+  private String getSubstituteNodeTemplateId(String nodeTypeId,
                                              Integer index) {
-    String computeNodeTemplateId =
-        unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
-    NodeTemplate computeNodeTemplate =
-        DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
     String nodeTemplateId = ABSTRACT_NODE_TEMPLATE_ID_PREFIX + DataModelUtil
         .getNamespaceSuffix(nodeTypeId);
     if (Objects.nonNull(index)) {
@@ -1664,18 +1669,10 @@ public class UnifiedCompositionService {
     return nodeTypeId;
   }
 
-  private String getNewComputeNodeTemplateId(
-      ServiceTemplate serviceTemplate,
-      String computeNodeTemplateId) {
-    return getComputeTypeSuffix(serviceTemplate, computeNodeTemplateId);
-  }
-
   private NodeType handleSubstitutionGlobalNodeType(ServiceTemplate serviceTemplate,
                                                     ServiceTemplate substitutionServiceTemplate,
                                                     TranslationContext context,
-                                                    UnifiedCompositionData unifiedCompositionData,
-                                                    String substitutionNodeTypeId,
-                                                    Integer index) {
+                                                    String substitutionNodeTypeId) {
     NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl()
         .createInitSubstitutionNodeType(substitutionServiceTemplate,
             ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
@@ -1735,9 +1732,9 @@ public class UnifiedCompositionService {
     Map<String, List<String>> portIdsPerPortType = UnifiedCompositionUtil
         .collectAllPortsFromEachTypesFromComputes(computeConsolidationDataList);
 
-    for (String portType : portIdsPerPortType.keySet()) {
+    for (Map.Entry<String, List<String>> portIdsPerPortTypeEntry : portIdsPerPortType.entrySet()) {
       List<EntityConsolidationData> portTemplateConsolidationDataList =
-          getPortConsolidationDataList(portIdsPerPortType.get(portType),
+          getPortConsolidationDataList(portIdsPerPortTypeEntry.getValue(),
               unifiedCompositionDataList);
       if (CollectionUtils.isEmpty(portTemplateConsolidationDataList)) {
         continue;
@@ -1765,7 +1762,7 @@ public class UnifiedCompositionService {
 
     removeConnectivityOut(portTemplateConsolidationData, newPortNodeTemplate);
     handleProperties(serviceTemplate, newPortNodeTemplate,
-        substitutionServiceTemplate, UnifiedCompositionEntity.Port,
+        substitutionServiceTemplate, UnifiedCompositionEntity.PORT,
         portTemplateConsolidationDataList, computeTemplateConsolidationData,
         unifiedCompositionDataList, context);
 
@@ -1790,6 +1787,156 @@ public class UnifiedCompositionService {
 
   }
 
+  private void handleSubInterfaces(UnifiedCompositionTo unifiedCompositionTo) {
+    if (unifiedCompositionTo.getUnifiedCompositionDataList().size() > 1) {
+      handleConsolidationSubInterfaces(unifiedCompositionTo);
+    } else {
+      handleSingleSubInterfaces(unifiedCompositionTo);
+    }
+  }
+
+  private void handleSingleSubInterfaces(UnifiedCompositionTo unifiedCompositionTo) {
+    UnifiedCompositionData unifiedCompositionData = unifiedCompositionTo.getUnifiedCompositionDataList().get(0);
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+    for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+        subInterfaceTemplateConsolidationDataList) {
+      List<SubInterfaceTemplateConsolidationData> subInterfaceDataList = new ArrayList<>();
+      subInterfaceDataList.add(subInterfaceTemplateConsolidationData);
+      createSubInterfaceSubstitutionNodeTemplate(unifiedCompositionTo, subInterfaceDataList);
+    }
+  }
+
+  private void handleConsolidationSubInterfaces(UnifiedCompositionTo unifiedCompositionTo) {
+    Collection<ComputeTemplateConsolidationData> computeConsolidationDataList =
+        (Collection) getComputeConsolidationDataList(unifiedCompositionTo.getUnifiedCompositionDataList());
+
+    Map<String, List<String>> portIdsPerPortType = UnifiedCompositionUtil
+        .collectAllPortsFromEachTypesFromComputes(computeConsolidationDataList);
+
+    for (Map.Entry<String, List<String>> portIdsPerPortTypeEntry : portIdsPerPortType.entrySet()) {
+      List<EntityConsolidationData> portEntityConsolidationDataList =
+          getPortConsolidationDataList(portIdsPerPortTypeEntry.getValue(),
+              unifiedCompositionTo.getUnifiedCompositionDataList());
+      if (CollectionUtils.isEmpty(portEntityConsolidationDataList)) {
+        continue;
+      }
+
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
+      portEntityConsolidationDataList.stream()
+          .map(data -> (PortTemplateConsolidationData) data)
+          .collect(Collectors.toList());
+
+      ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfacesByType = UnifiedCompositionUtil
+          .collectAllSubInterfacesOfEachTypesFromPorts(portTemplateConsolidationDataList);
+      Set<String> subInterfaceTypes = subInterfacesByType.keySet();
+      for (String subInterfaceType: subInterfaceTypes) {
+        List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+            subInterfacesByType.get(subInterfaceType);
+        createSubInterfaceSubstitutionNodeTemplate(unifiedCompositionTo, subInterfaceTemplateConsolidationDataList);
+      }
+    }
+  }
+
+  private void createSubInterfaceSubstitutionNodeTemplate(UnifiedCompositionTo unifiedCompositionTo,
+                                                          List<SubInterfaceTemplateConsolidationData>
+                                                              subInterfaceTemplateConsolidationDataList) {
+    SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData =
+        subInterfaceTemplateConsolidationDataList.get(0);
+    PortTemplateConsolidationData portTemplateConsolidationData =
+        getSubInterfacePortTemplateConsolidationData(unifiedCompositionTo.getServiceTemplate(),
+            subInterfaceTemplateConsolidationData, unifiedCompositionTo.getContext());
+
+    if (Objects.isNull(portTemplateConsolidationData)) {
+      return;
+    }
+
+    String originalSubInterfaceNodeTemplateId = subInterfaceTemplateConsolidationDataList.get(0)
+        .getNodeTemplateId();
+    NodeTemplate originalSubInterfaceNodeTemplate =
+        DataModelUtil.getNodeTemplate(unifiedCompositionTo.getServiceTemplate(), originalSubInterfaceNodeTemplateId);
+    if (Objects.isNull(originalSubInterfaceNodeTemplate)) {
+      return;
+    }
+    NodeTemplate newSubInterfaceNodeTemplate = originalSubInterfaceNodeTemplate.clone();
+    ComputeTemplateConsolidationData connectedComputeConsolidationData =
+        getConnectedComputeConsolidationData(unifiedCompositionTo.getUnifiedCompositionDataList(),
+            portTemplateConsolidationData.getNodeTemplateId());
+    if (Objects.nonNull(connectedComputeConsolidationData)) {
+      NodeTemplate connectedComputeNodeTemplate = DataModelUtil.getNodeTemplate(unifiedCompositionTo
+              .getServiceTemplate(), connectedComputeConsolidationData.getNodeTemplateId());
+      String newSubInterfaceNodeTemplateId = getNewSubInterfaceNodeTemplateId(unifiedCompositionTo
+              .getServiceTemplate(), connectedComputeNodeTemplate.getType(), connectedComputeConsolidationData,
+          subInterfaceTemplateConsolidationData, unifiedCompositionTo.getContext());
+      DataModelUtil.addNodeTemplate(unifiedCompositionTo.getSubstitutionServiceTemplate(),
+          newSubInterfaceNodeTemplateId, newSubInterfaceNodeTemplate);
+      List<EntityConsolidationData> entityConsolidationDataList =
+          new ArrayList<>(subInterfaceTemplateConsolidationDataList);
+      //Remove all the existing properties as we are going to create new based on the
+      // naming convention for the substitution
+      handleSubInterfaceProperties(unifiedCompositionTo, newSubInterfaceNodeTemplate, entityConsolidationDataList,
+          portTemplateConsolidationData);
+      //Update requirements for relationships between the consolidation entities
+      handleConsolidationEntitiesRequirementConnectivity(newSubInterfaceNodeTemplate, unifiedCompositionTo
+          .getServiceTemplate(), unifiedCompositionTo.getContext());
+      removeConnectivityOut(subInterfaceTemplateConsolidationData,newSubInterfaceNodeTemplate);
+    }
+  }
+
+  private void handleSubInterfaceProperties(UnifiedCompositionTo unifiedCompositionTo,
+                                            NodeTemplate newSubInterfaceNodeTemplate,
+                                            List<EntityConsolidationData>
+                                                entityConsolidationDataList,
+                                            PortTemplateConsolidationData
+                                                portTemplateConsolidationData) {
+    UnifiedCompositionData unifiedCompositionData = unifiedCompositionTo.getUnifiedCompositionDataList().get(0);
+    ServiceTemplate serviceTemplate = unifiedCompositionTo.getServiceTemplate();
+    TranslationContext context = unifiedCompositionTo.getContext();
+    newSubInterfaceNodeTemplate.setProperties(new HashMap<>());
+    for (EntityConsolidationData entityConsolidationData : entityConsolidationDataList) {
+      String nodeTemplateId = entityConsolidationData.getNodeTemplateId();
+      Optional<List<String>> indexVarProperties =
+          context.getIndexVarProperties(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+              nodeTemplateId);
+      Map<String, Object> properties =
+          DataModelUtil.getNodeTemplateProperties(serviceTemplate, nodeTemplateId);
+      if (MapUtils.isEmpty(properties)) {
+        continue;
+      }
+
+      for (Map.Entry<String, Object> propertyEntry : properties.entrySet()) {
+        NodeType nodeTypeWithFlatHierarchy =
+            HeatToToscaUtil.getNodeTypeWithFlatHierarchy(newSubInterfaceNodeTemplate.getType(),
+                serviceTemplate, context);
+        PropertyDefinition propertyDefinition =
+            nodeTypeWithFlatHierarchy.getProperties().get(propertyEntry.getKey());
+        String propertyType = propertyDefinition.getType();
+        //Handle service_template_filter property for subinterface as we should not create inputs
+        // for this property
+        if (propertyEntry.getKey().equals(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME)) {
+          handleSubInterfaceServiceTemplateFilterProperty(newSubInterfaceNodeTemplate,
+              propertyEntry.getKey(), propertyEntry.getValue(), serviceTemplate,
+              unifiedCompositionTo.getSubstitutionServiceTemplate());
+        } else if (indexVarProperties.isPresent()
+            && indexVarProperties.get().contains(propertyEntry.getKey())) {
+          //Handle index property
+          handleIndexVarProperty(propertyEntry.getKey(), propertyEntry.getValue(),
+              newSubInterfaceNodeTemplate);
+        } else {
+          Optional<String> parameterId =
+              updateProperty(serviceTemplate, nodeTemplateId, newSubInterfaceNodeTemplate,
+                  propertyEntry, UnifiedCompositionEntity.SUB_INTERFACE, unifiedCompositionData
+                      .getComputeTemplateConsolidationData(), portTemplateConsolidationData,
+                  unifiedCompositionTo.getUnifiedCompositionDataList(), context);
+          parameterId.ifPresent(
+              parameterIdValue -> addPropertyInputParameter(propertyType,
+                  unifiedCompositionTo.getSubstitutionServiceTemplate(),
+                  propertyDefinition.getEntry_schema(), parameterIdValue));
+        }
+      }
+    }
+  }
+
   private NodeTemplate getNodeTemplate(String nodeTemplateId, ServiceTemplate serviceTemplate,
                                        TranslationContext context) {
 
@@ -1813,8 +1960,6 @@ public class UnifiedCompositionService {
         unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
     handleComputeNodeTemplate(serviceTemplate, substitutionServiceTemplate,
         unifiedCompositionDataList, context);
-    ServiceTemplate globalSubstitutionServiceTemplate =
-        HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
     return handleComputeNodeType(serviceTemplate, substitutionServiceTemplate,
         computeTemplateConsolidationData);
   }
@@ -1834,11 +1979,6 @@ public class UnifiedCompositionService {
     return computeNodeTypeId;
   }
 
-  private String getComputeNodeType(String nodeType) {
-    String computeTypeSuffix = getComputeTypeSuffix(nodeType);
-    return ToscaNodeType.COMPUTE_TYPE_PREFIX + "." + computeTypeSuffix;
-  }
-
   private void handleComputeNodeTemplate(ServiceTemplate serviceTemplate,
                                          ServiceTemplate substitutionServiceTemplate,
                                          List<UnifiedCompositionData> unifiedCompositionDataList,
@@ -1851,12 +1991,12 @@ public class UnifiedCompositionService {
     removeConnectivityOut(computeTemplateConsolidationData, newComputeNodeTemplate);
     removeVolumeConnectivity(computeTemplateConsolidationData, newComputeNodeTemplate);
 
-    List<EntityConsolidationData> computeConsoliadtionDataList =
+    List<EntityConsolidationData> computeConsolidationDataList =
         getComputeConsolidationDataList(unifiedCompositionDataList);
 
     handleProperties(serviceTemplate, newComputeNodeTemplate,
-        substitutionServiceTemplate, UnifiedCompositionEntity.Compute,
-        computeConsoliadtionDataList, computeTemplateConsolidationData, unifiedCompositionDataList,
+        substitutionServiceTemplate, COMPUTE,
+        computeConsolidationDataList, computeTemplateConsolidationData, unifiedCompositionDataList,
         context);
 
     String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
@@ -1869,7 +2009,7 @@ public class UnifiedCompositionService {
         .addNodeTemplate(substitutionServiceTemplate,
             newComputeNodeTemplateId, newComputeNodeTemplate);
     //Add the node template mapping in the context for handling requirement updation
-    for (EntityConsolidationData data : computeConsoliadtionDataList) {
+    for (EntityConsolidationData data : computeConsolidationDataList) {
       String newComputeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
           computeTemplateConsolidationData.getNodeTemplateId());
       context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
@@ -1878,25 +2018,11 @@ public class UnifiedCompositionService {
     }
   }
 
-  private void updateComputeNodeType(ServiceTemplate serviceTemplate,
-                                     String nodeTemplateId,
-                                     NodeTemplate newComputeNodeTemplate) {
-    String computeNodeType = getComputeNodeType(newComputeNodeTemplate.getType());
-    NodeType origNodeType = serviceTemplate.getNode_types().get(newComputeNodeTemplate.getType());
-    DataModelUtil.removeNodeType(serviceTemplate, newComputeNodeTemplate.getType());
-    DataModelUtil.addNodeType(serviceTemplate, computeNodeType, origNodeType);
-    newComputeNodeTemplate.setType(computeNodeType);
-    DataModelUtil.addNodeTemplate(serviceTemplate, nodeTemplateId, newComputeNodeTemplate);
-  }
-
   private List<EntityConsolidationData> getComputeConsolidationDataList(
       List<UnifiedCompositionData> unifiedCompositionDataList) {
-    List<EntityConsolidationData> computeConsolidationDataList = new ArrayList<>();
-    for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
-      computeConsolidationDataList
-          .add(unifiedCompositionData.getComputeTemplateConsolidationData());
-    }
-    return computeConsolidationDataList;
+    return unifiedCompositionDataList.stream()
+        .map(UnifiedCompositionData::getComputeTemplateConsolidationData)
+        .collect(Collectors.toList());
   }
 
 
@@ -1908,8 +2034,6 @@ public class UnifiedCompositionService {
                                 ComputeTemplateConsolidationData computeTemplateConsolidationData,
                                 List<UnifiedCompositionData> unifiedCompositionDataList,
                                 TranslationContext context) {
-    List<String> propertiesWithIdenticalVal =
-        consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity);
     nodeTemplate.setProperties(new HashedMap());
     handleNodeTemplateProperties(serviceTemplate, nodeTemplate, substitutionServiceTemplate,
         unifiedCompositionEntity, entityConsolidationDataList, computeTemplateConsolidationData,
@@ -1936,6 +2060,9 @@ public class UnifiedCompositionService {
 
     for (EntityConsolidationData entityConsolidationData : entityConsolidationDataList) {
       String nodeTemplateId = entityConsolidationData.getNodeTemplateId();
+      Optional<List<String>> indexVarProperties =
+          context.getIndexVarProperties(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+              nodeTemplateId);
       Map<String, Object> properties =
           DataModelUtil.getNodeTemplateProperties(serviceTemplate, nodeTemplateId);
       if (MapUtils.isEmpty(properties)) {
@@ -1960,17 +2087,67 @@ public class UnifiedCompositionService {
               propertyType.equals(PropertyType.LIST.getDisplayName()) ? propertyDefinition
                   .getEntry_schema() : null,
               substitutionServiceTemplate);
+        } else if (indexVarProperties.isPresent()
+            && indexVarProperties.get().contains(propertyEntry.getKey())) {
+          //Handle index property
+          handleIndexVarProperty(propertyEntry.getKey(), propertyEntry.getValue(), nodeTemplate);
         } else {
           Optional<String> parameterId =
               updateProperty(serviceTemplate, nodeTemplateId, nodeTemplate, propertyEntry,
-                  unifiedCompositionEntity, computeTemplateConsolidationData,
+                  unifiedCompositionEntity, computeTemplateConsolidationData, null,
                   unifiedCompositionDataList,
                   context);
-          //todo - define list of type which will match the node property type (instead of string)
           parameterId.ifPresent(
               parameterIdValue -> addPropertyInputParameter(propertyType,
                   substitutionServiceTemplate,
-                  propertyDefinition.getEntry_schema(), parameterIdValue, context));
+                  propertyDefinition.getEntry_schema(), parameterIdValue));
+        }
+      }
+    }
+  }
+
+  private void handleIndexVarProperty(String propertyKey, Object propertyValue,
+                                      NodeTemplate nodeTemplate) {
+    //Retain properties translated from %index% value in heat
+    nodeTemplate.getProperties().put(propertyKey, propertyValue);
+  }
+
+  private void handleSubInterfaceServiceTemplateFilterProperty(NodeTemplate nodeTemplate,
+                                                   String propertyKey,
+                                                   Object propertyValue,
+                                                   ServiceTemplate serviceTemplate,
+                                                   ServiceTemplate substitutionServiceTemplate) {
+    //Retain service_template_filter (Can be present in a sub-interface resource-def)
+    nodeTemplate.getProperties().put(propertyKey, propertyValue);
+    Object serviceTemplateFilterProperty =
+        nodeTemplate.getProperties().get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
+    if (!(serviceTemplateFilterProperty instanceof Map)) {
+      return;
+    }
+    Map<String, Object> serviceTemplatePropertyMap = (Map<String, Object>)
+        serviceTemplateFilterProperty;
+    Object countPropertyVal = serviceTemplatePropertyMap.get(ToscaConstants.COUNT_PROPERTY_NAME);
+    //Check if the value of the count property is a tosca function
+    if (!isPropertyContainsToscaFunction(countPropertyVal)) {
+      return;
+    }
+    Map<String, Object> countPropertyValMap = (Map<String, Object>) countPropertyVal;
+    //If the value is in the form of get_input add an input parameter in current service
+    // template
+    if (countPropertyValMap.keySet().contains(ToscaFunctions.GET_INPUT.getDisplayName())) {
+      String countPropertyInputName = countPropertyValMap.get(ToscaFunctions.GET_INPUT
+          .getDisplayName()).toString();
+      //Get the input parameter definition from top level where the resource group was present
+      ParameterDefinitionExt parameterDefinition = (ParameterDefinitionExt)
+          DataModelUtil.getInputParameters(serviceTemplate).get(countPropertyInputName);
+      if (Objects.nonNull(parameterDefinition)) {
+        //Remove annotations if any for the nested service template
+        parameterDefinition.setAnnotations(null);
+        DataModelUtil.getInputParameters(substitutionServiceTemplate)
+            .put(countPropertyInputName, parameterDefinition);
+        if (Objects.nonNull(countPropertyInputName)) {
+          //Remove the input from top level
+          DataModelUtil.getInputParameters(serviceTemplate).remove(countPropertyInputName);
         }
       }
     }
@@ -1987,11 +2164,11 @@ public class UnifiedCompositionService {
     Optional<NodeType> enrichNodeType;
     List<String> enrichProperties;
 
-    if (compositionEntity.equals(UnifiedCompositionEntity.Port)) {
+    if (compositionEntity.equals(UnifiedCompositionEntity.PORT)) {
       enrichNodeType =
           toscaAnalyzerService.fetchNodeType(ToscaNodeType.NETWORK_PORT,
               context.getGlobalServiceTemplates().values());
-      enrichProperties = context.getEnrichPortResourceProperties();
+      enrichProperties = TranslationContext.getEnrichPortResourceProperties();
       if (!enrichNodeType.isPresent() || Objects.isNull(enrichProperties)) {
         return;
       }
@@ -2028,7 +2205,7 @@ public class UnifiedCompositionService {
 
       String inputParamId =
           getParameterId(nodeTemplateId, nodeTemplate, enrichPropertyName,
-              compositionEntity, computeTemplateConsolidationData);
+              compositionEntity, computeTemplateConsolidationData, null);
       Map<String, String> propertyValMap = new HashMap<>();
 
       context
@@ -2047,7 +2224,7 @@ public class UnifiedCompositionService {
 
       addPropertyInputParameter(propertyType, substitutionServiceTemplate, enrichNodeType
               .getProperties().get(enrichPropertyName).getEntry_schema(),
-          inputParamId, context);
+          inputParamId);
 
     }
   }
@@ -2078,9 +2255,11 @@ public class UnifiedCompositionService {
 
   private void addPropertyInputParameter(String propertyType,
                                          ServiceTemplate substitutionServiceTemplate,
-                                         EntrySchema entrySchema, String parameterId,
-                                         TranslationContext context) {
-    if (isParameterBelongsToEnrichedPortProperties(parameterId, context)) {
+                                         EntrySchema entrySchema, String parameterId) {
+    if (Objects.isNull(propertyType)) {
+      return;
+    }
+    if (isParameterBelongsToEnrichedPortProperties(parameterId)) {
       addInputParameter(parameterId,
           propertyType,
           propertyType.equals(PropertyType.LIST.getDisplayName()) ? entrySchema : null,
@@ -2102,9 +2281,8 @@ public class UnifiedCompositionService {
     }
   }
 
-  private boolean isParameterBelongsToEnrichedPortProperties(String parameterId,
-                                                             TranslationContext context) {
-    List enrichPortResourceProperties = context.getEnrichPortResourceProperties();
+  private boolean isParameterBelongsToEnrichedPortProperties(String parameterId) {
+    List enrichPortResourceProperties = TranslationContext.getEnrichPortResourceProperties();
 
     for (int i = 0; i < enrichPortResourceProperties.size(); i++) {
       if (parameterId.contains((CharSequence) enrichPortResourceProperties.get(i))) {
@@ -2116,11 +2294,8 @@ public class UnifiedCompositionService {
   }
 
   private boolean isPropertySimpleType(String propertyType) {
-    return !Objects.isNull(propertyType) &&
-        (propertyType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
-            || propertyType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
-            || propertyType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
-            || propertyType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName()));
+    return !Objects.isNull(propertyType)
+        && (PropertyType.getSimplePropertyTypes().contains(propertyType.toLowerCase()));
   }
 
   private String analyzeParameterType(String propertyType) {
@@ -2129,7 +2304,7 @@ public class UnifiedCompositionService {
   }
 
   private String analyzeEntrySchemaType(String propertyType, EntrySchema entrySchema) {
-    return propertyType.equalsIgnoreCase(PropertyType.LIST.getDisplayName()) ?
+    return propertyType.equalsIgnoreCase(PropertyType.LIST.getDisplayName()) && entrySchema != null ?
         entrySchema.getType() : null;
   }
 
@@ -2198,34 +2373,28 @@ public class UnifiedCompositionService {
                                          UnifiedCompositionEntity unifiedCompositionEntity,
                                          List<UnifiedCompositionData> unifiedCompositionDataList) {
 
-    String inputParamId;
+    String inputParamId = null;
     Map<String, Object> propertyVal = new HashMap<>();
 
     switch (unifiedCompositionEntity) {
-      case Compute:
+      case COMPUTE:
         inputParamId = COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX + propertyId
             + COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
-
         propertyVal.put(ToscaFunctions.GET_INPUT.getDisplayName(), inputParamId);
         nodeTemplate.getProperties().put(propertyId, propertyVal);
-
-        return inputParamId;
-
-      case Port:
+        break;
+      case PORT:
         String portType = ConsolidationDataUtil.getPortType(nodeTemplateId);
         ComputeTemplateConsolidationData computeTemplateConsolidationData =
             getConnectedComputeConsolidationData(unifiedCompositionDataList, nodeTemplateId);
-        inputParamId = getInputParamIdForPort(nodeTemplateId, propertyId, portType,
-            computeTemplateConsolidationData);
-
+        inputParamId = getInputParamIdForPort(nodeTemplateId, propertyId, portType, computeTemplateConsolidationData);
         propertyVal.put(ToscaFunctions.GET_INPUT.getDisplayName(), inputParamId);
         nodeTemplate.getProperties().put(propertyId, propertyVal);
-
-        return inputParamId;
-
+        break;
       default:
-        return null;
+        break;
     }
+    return inputParamId;
   }
 
   private String getInputParamIdForPort(String nodeTemplateId, String propertyId, String portType,
@@ -2234,12 +2403,12 @@ public class UnifiedCompositionService {
     if (Objects.isNull(computeTemplateConsolidationData)
         || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
       inputParamId =
-          UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_" +
+          UnifiedCompositionEntity.PORT.getDisplayName().toLowerCase() + "_" + nodeTemplateId + "_" +
               propertyId;
 
     } else {
       inputParamId =
-          UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
+          UnifiedCompositionEntity.PORT.getDisplayName().toLowerCase() + "_" + portType + "_"
               + propertyId;
     }
     return inputParamId;
@@ -2267,6 +2436,7 @@ public class UnifiedCompositionService {
       Map.Entry<String, Object> propertyEntry,
       UnifiedCompositionEntity compositionEntity,
       ComputeTemplateConsolidationData computeTemplateConsolidationData,
+      PortTemplateConsolidationData portTemplateConsolidationData,
       List<UnifiedCompositionData> unifiedCompositionDataList,
       TranslationContext context) {
 
@@ -2278,16 +2448,13 @@ public class UnifiedCompositionService {
 
     String inputParamId =
         getParameterId(nodeTemplateId, nodeTemplate, propertyEntry.getKey(), compositionEntity,
-            computeTemplateConsolidationData);
-    Map<String, List<String>> propertyVal = getPropertyValueInputParam(nodeTemplateId,
-        nodeTemplate, inputParamId);
+            computeTemplateConsolidationData, portTemplateConsolidationData);
+    Map<String, List<String>> propertyVal = getPropertyValueInputParam(inputParamId);
     nodeTemplate.getProperties().put(propertyEntry.getKey(), propertyVal);
     return Optional.of(inputParamId);
   }
 
-  private Map<String, List<String>> getPropertyValueInputParam(String nodeTemplateId,
-                                                               NodeTemplate nodeTemplate,
-                                                               String inputParamId) {
+  private Map<String, List<String>> getPropertyValueInputParam(String inputParamId) {
     Map<String, List<String>> propertyVal = new HashMap<>();
     List<String> getInputFuncParams = new ArrayList<>();
     getInputFuncParams.add(inputParamId);
@@ -2335,8 +2502,8 @@ public class UnifiedCompositionService {
       for (List<Object> getAttrFunc : clonedGetAttrFuncList) {
         String targetNodeTemplateId = (String) getAttrFunc.get(0);
         if (consolidationNodeTemplateIds.contains(targetNodeTemplateId)) {
-          updatePropertyGetAttrFunc(serviceTemplate, unifiedCompositionDataList, context,
-              consolidationNodeTemplateIdAndType, targetNodeTemplateId, getAttrFunc);
+          updatePropertyGetAttrFunc(serviceTemplate, unifiedCompositionDataList,
+              consolidationNodeTemplateIdAndType, targetNodeTemplateId, getAttrFunc, context);
         }
       }
       nodeTemplate.getProperties().put(propertyEntry.getKey(), clonedPropertyValue);
@@ -2345,19 +2512,6 @@ public class UnifiedCompositionService {
     return false;
   }
 
-  private boolean isGetAttrFromConsolidationNodesIsFromSameType(String sourceNodeTemplateId,
-                                                                Set<String> nodeTemplateIdsFromConsolidation,
-                                                                Map<String, String>
-                                                                    nodeTemplateIdToType) {
-    for (String idFromConsolidation : nodeTemplateIdsFromConsolidation) {
-      if (isGetAttrNodeTemplateFromSameType(sourceNodeTemplateId, idFromConsolidation,
-          nodeTemplateIdToType)) {
-        return true;
-      }
-    }
-    return false;
-  }
-
   private boolean isGetAttrNodeTemplateFromSameType(String sourceNodeTemplateId,
                                                     String targetNodeTemplateId,
                                                     Map<String, String> nodeTemplateIdToType) {
@@ -2374,37 +2528,33 @@ public class UnifiedCompositionService {
   private void updatePropertyGetAttrFunc(
       ServiceTemplate serviceTemplate,
       List<UnifiedCompositionData> unifiedCompositionDataList,
-      TranslationContext context,
       Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
       String targetNodeTemplateId,
-      List<Object> getAttrFunc) {
+      List<Object> getAttrFunc, TranslationContext context) {
     UnifiedCompositionEntity targetCompositionEntity =
         consolidationNodeTemplateIdAndType.get(targetNodeTemplateId);
     String targetNewNodeTemplateId =
         getNewNodeTemplateId(serviceTemplate, unifiedCompositionDataList, targetNodeTemplateId,
-            targetCompositionEntity);
+            targetCompositionEntity, context);
     getAttrFunc.set(0, targetNewNodeTemplateId);
   }
 
   private String getNewNodeTemplateId(ServiceTemplate serviceTemplate,
                                       List<UnifiedCompositionData> unifiedCompositionDataList,
                                       String nodeTemplateId,
-                                      UnifiedCompositionEntity compositionEntity) {
-    switch (compositionEntity) {
-      case Compute:
-        return getNewComputeNodeTemplateId(serviceTemplate, nodeTemplateId);
-      case Port:
-        ComputeTemplateConsolidationData connectedComputeConsolidationData =
-            getConnectedComputeConsolidationData(
-                unifiedCompositionDataList, nodeTemplateId);
-        NodeTemplate connectedComputeNodeTemplate =
-            DataModelUtil.getNodeTemplate(serviceTemplate,
-                connectedComputeConsolidationData.getNodeTemplateId());
-        return getNewPortNodeTemplateId(nodeTemplateId, connectedComputeNodeTemplate.getType(),
-            connectedComputeConsolidationData);
-      default:
-        return null;
+                                      UnifiedCompositionEntity compositionEntity,
+                                      TranslationContext context) {
+    String newNodeTemplateId = nodeTemplateId;
+    String nodeTemplateIdGeneratorImpl = unifiedSubstitutionNodeTemplateIdGeneratorImplMap.get(compositionEntity);
+    UnifiedSubstitutionNodeTemplateIdGenerator nodeTemplateIdGenerator =
+        CommonMethods.newInstance(nodeTemplateIdGeneratorImpl, UnifiedSubstitutionNodeTemplateIdGenerator.class);
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(serviceTemplate, null,
+        unifiedCompositionDataList, context);
+    Optional<String> generatedNodeTemplateId = nodeTemplateIdGenerator.generate(unifiedCompositionTo, nodeTemplateId);
+    if (generatedNodeTemplateId.isPresent()) {
+      newNodeTemplateId = generatedNodeTemplateId.get();
     }
+    return newNodeTemplateId;
   }
 
   private String getNewNodeTemplateId(String origNodeTemplateId,
@@ -2413,11 +2563,11 @@ public class UnifiedCompositionService {
                                       TranslationContext context) {
     ConsolidationData consolidationData = context.getConsolidationData();
 
-    if (isIdIsOfExpectedType(origNodeTemplateId, UnifiedCompositionEntity.Port,
+    if (isIdIsOfExpectedType(origNodeTemplateId, UnifiedCompositionEntity.PORT,
         serviceTemplateFileName,
         context)) {
       return handleIdOfPort(origNodeTemplateId, serviceTemplateFileName, consolidationData);
-    } else if (isIdIsOfExpectedType(origNodeTemplateId, UnifiedCompositionEntity.Compute,
+    } else if (isIdIsOfExpectedType(origNodeTemplateId, COMPUTE,
         serviceTemplateFileName, context)) {
       NodeTemplate nodeTemplate =
           getComputeNodeTemplate(origNodeTemplateId, serviceTemplate, context);
@@ -2427,21 +2577,6 @@ public class UnifiedCompositionService {
     return null;
   }
 
-  private ComputeTemplateConsolidationData getConnectedComputeConsolidationData(
-      List<UnifiedCompositionData> unifiedCompositionDataList,
-      String portNodeTemplateId) {
-    for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
-      Collection<List<String>> portsCollection =
-          unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values();
-      for (List<String> portIdList : portsCollection) {
-        if (portIdList.contains(portNodeTemplateId)) {
-          return unifiedCompositionData.getComputeTemplateConsolidationData();
-        }
-      }
-    }
-    return null;
-  }
-
   private Object getClonedPropertyValue(Map.Entry<String, Object> propertyEntry) {
     if (propertyEntry.getValue() instanceof Map) {
       return getClonedObject(propertyEntry.getValue(), Map.class);
@@ -2454,23 +2589,49 @@ public class UnifiedCompositionService {
 
   private String getParameterId(String nodeTemplateId, NodeTemplate nodeTemplate, String propertyId,
                                 UnifiedCompositionEntity unifiedCompositionEntity,
-                                ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+                                ComputeTemplateConsolidationData
+                                    computeTemplateConsolidationData,
+                                PortTemplateConsolidationData portTemplateConsolidationData) {
+    String paramterId = propertyId;
     switch (unifiedCompositionEntity) {
-      case Compute:
-        return UnifiedCompositionEntity.Compute.name().toLowerCase() + "_"
+      case COMPUTE:
+        paramterId = COMPUTE.getDisplayName().toLowerCase() + "_"
             + getComputeTypeSuffix(nodeTemplate.getType()) + "_" + propertyId;
-      case Port:
+        break;
+      case PORT:
         String portType = ConsolidationDataUtil.getPortType(nodeTemplateId);
         if (Objects.isNull(computeTemplateConsolidationData)
             || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
-          return UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_"
+          paramterId = UnifiedCompositionEntity.PORT.getDisplayName().toLowerCase() + "_"
+              + nodeTemplateId + "_" + propertyId;
+        } else {
+          paramterId = UnifiedCompositionEntity.PORT.getDisplayName().toLowerCase() + "_" + portType + "_"
               + propertyId;
         }
-        return UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
-            + propertyId;
+        break;
+      case SUB_INTERFACE:
+        String subInterfaceType = getSubInterfaceTypeSuffix(nodeTemplate.getType());
+        if (Objects.isNull(portTemplateConsolidationData)
+            || isSubInterfaceNodeTemplateIdParameter(portTemplateConsolidationData, nodeTemplate)) {
+          paramterId = UnifiedCompositionEntity.SUB_INTERFACE.getDisplayName().toLowerCase() + "_"
+              + nodeTemplateId + "_" + propertyId;
+        } else {
+          paramterId = UnifiedCompositionEntity.SUB_INTERFACE.getDisplayName().toLowerCase() + "_"
+              + subInterfaceType + "_" + propertyId;
+        }
+        break;
       default:
-        return propertyId;
+        break;
     }
+    return paramterId;
+  }
+
+  private boolean isSubInterfaceNodeTemplateIdParameter(PortTemplateConsolidationData portTemplateConsolidationData,
+                                                        NodeTemplate nodeTemplate) {
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        portTemplateConsolidationData.getSubInterfaceConsolidationData(nodeTemplate.getType());
+    return (Objects.nonNull(subInterfaceTemplateConsolidationDataList)
+        && subInterfaceTemplateConsolidationDataList.size() > 1) ;
   }
 
   private void removeConnectivityOut(EntityConsolidationData entityConsolidationData,
@@ -2541,15 +2702,10 @@ public class UnifiedCompositionService {
 
   private Optional<Map<String, Object>> createAbstractSubstitutionProperties(
       ServiceTemplate serviceTemplate,
-      ServiceTemplate substitutionServiceTemplate,
+      Map<String, ParameterDefinition> substitutionTemplateInputs,
       List<UnifiedCompositionData> unifiedCompositionDataList,
       TranslationContext context) {
     Map<String, Object> abstractSubstituteProperties = new LinkedHashMap<>();
-    Map<String, ParameterDefinition> substitutionTemplateInputs = DataModelUtil
-        .getInputParameters(substitutionServiceTemplate);
-    if (substitutionTemplateInputs == null) {
-      return Optional.empty();
-    }
     //Since all the computes have the same type fetching the type from the first entry
     NodeTemplate firstComputeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
         unifiedCompositionDataList.get(0)
@@ -2564,14 +2720,14 @@ public class UnifiedCompositionService {
 
       if (!inputType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())) {
         if (isIdenticalValueProperty(
-            substitutionTemplateInputName, inputUnifiedCompositionEntity, context)) {
+            substitutionTemplateInputName, inputUnifiedCompositionEntity)) {
           //Handle identical value properties
           Optional<String> identicalValuePropertyName =
               getIdenticalValuePropertyName(substitutionTemplateInputName,
-                  inputUnifiedCompositionEntity, context);
+                  inputUnifiedCompositionEntity);
 
           identicalValuePropertyName.ifPresent(propertyName -> updateIdenticalPropertyValue(propertyName,
-              substitutionTemplateInputName, computeType, inputUnifiedCompositionEntity,
+              substitutionTemplateInputName, inputUnifiedCompositionEntity,
               unifiedCompositionDataList.get(0), serviceTemplate, abstractSubstituteProperties,
               context));
         }
@@ -2580,59 +2736,110 @@ public class UnifiedCompositionService {
 
       //Check if the input is of type compute or port
       List<Object> abstractPropertyValue = new ArrayList<>();
-      Object propertyValue = null;
       switch (inputUnifiedCompositionEntity) {
-        case Compute:
-          for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
-            ComputeTemplateConsolidationData computeTemplateConsolidationData =
-                compositionData.getComputeTemplateConsolidationData();
-            propertyValue = getComputePropertyValue(substitutionTemplateInputName,
-                serviceTemplate, computeTemplateConsolidationData);
-            if (!(propertyValue instanceof Optional)) {
-              abstractPropertyValue.add(propertyValue);
-            }
-          }
+        case COMPUTE:
+          createAbstractComputeProperties(unifiedCompositionDataList,
+              substitutionTemplateInputName, serviceTemplate, abstractPropertyValue);
           break;
-        case Port:
-          for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
-            List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-                getPortTemplateConsolidationDataList(compositionData);
-            //Get the input type for this input whether it is of type
-            // port_<port_node_template_id>_<property_name> or port_<port_type>_<property_name>
-            PortInputType portInputType = getPortInputType(substitutionTemplateInputName,
-                compositionData);
-            for (PortTemplateConsolidationData portTemplateConsolidationData :
-                portTemplateConsolidationDataList) {
-              //Get the port property value
-              String portNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
-              propertyValue = getPortPropertyValue(substitutionTemplateInputName,
-                  computeType, portInputType, serviceTemplate,
-                  portNodeTemplateId);
-              //If the value object is Optional.empty it implies that the property name was not
-              // found in the input name
-              if (!(propertyValue instanceof Optional)) {
-                if (!abstractPropertyValue.contains(propertyValue)) {
-                  abstractPropertyValue.add(propertyValue);
-                }
-              }
-            }
-          }
+        case PORT:
+          createAbstractPortProperties(unifiedCompositionDataList, substitutionTemplateInputName,
+              computeType, serviceTemplate, abstractPropertyValue);
+          break;
+        case SUB_INTERFACE:
+          createAbstractSubInterfaceProperties(unifiedCompositionDataList,
+              substitutionTemplateInputName, serviceTemplate, abstractPropertyValue);
           break;
         default:
           break;
       }
       //Add the property only if it has at least one non-null value
-      for (Object val : abstractPropertyValue) {
-        if (Objects.nonNull(val)) {
-          updateAbstractPropertyValue(substitutionTemplateInputName, inputParameterDefinition,
-              abstractPropertyValue, abstractSubstituteProperties);
-          break;
-        }
+      if (abstractPropertyValue.stream().anyMatch(Objects::nonNull)) {
+        updateAbstractPropertyValue(substitutionTemplateInputName, inputParameterDefinition,
+            abstractPropertyValue, abstractSubstituteProperties);
       }
     }
     return Optional.ofNullable(abstractSubstituteProperties);
   }
 
+  private void createAbstractComputeProperties(List<UnifiedCompositionData>
+                                                   unifiedCompositionDataList,
+                                               String substitutionTemplateInputName,
+                                               ServiceTemplate serviceTemplate,
+                                               List<Object> abstractPropertyValue) {
+    for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
+      ComputeTemplateConsolidationData computeTemplateConsolidationData =
+          compositionData.getComputeTemplateConsolidationData();
+      Object propertyValue = getComputePropertyValue(substitutionTemplateInputName,
+          serviceTemplate, computeTemplateConsolidationData);
+      if (!(propertyValue instanceof Optional)) {
+        abstractPropertyValue.add(propertyValue);
+      }
+    }
+  }
+
+  private void createAbstractPortProperties(List<UnifiedCompositionData>
+                                                unifiedCompositionDataList,
+                                            String substitutionTemplateInputName,
+                                            String computeType,
+                                            ServiceTemplate serviceTemplate,
+                                            List<Object> abstractPropertyValue) {
+    for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
+      List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
+          getPortTemplateConsolidationDataList(compositionData);
+      //Get the input type for this input whether it is of type
+      // port_<port_node_template_id>_<property_name> or port_<port_type>_<property_name>
+      PropertyInputType portInputType = getPortInputType(substitutionTemplateInputName,
+          compositionData);
+      for (PortTemplateConsolidationData portTemplateConsolidationData :
+          portTemplateConsolidationDataList) {
+        //Get the port property value
+        String portNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
+        Object propertyValue = getPortPropertyValue(substitutionTemplateInputName,
+            computeType, portInputType, serviceTemplate,
+            portNodeTemplateId);
+        //If the value object is Optional.empty it implies that the property name was not
+        // found in the input name
+        if (!(propertyValue instanceof Optional)) {
+          abstractPropertyValue.add(propertyValue);
+        }
+      }
+    }
+  }
+
+  private void createAbstractSubInterfaceProperties(List<UnifiedCompositionData>
+                                                        unifiedCompositionDataList,
+                                                    String substitutionTemplateInputName,
+                                                    ServiceTemplate serviceTemplate,
+                                                    List<Object> abstractPropertyValue) {
+    for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          getSubInterfaceTemplateConsolidationDataList(compositionData);
+      //Get the input type for this input whether it is of type
+      // subInterface_<subinterface_node_template_id>_<property_name> or
+      // subInterface_<subinterface_type>_<property_name>
+      PropertyInputType subInterfaceInputType =
+          getSubInterfaceInputType(substitutionTemplateInputName, compositionData);
+      for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+          subInterfaceTemplateConsolidationDataList) {
+        //Get the subInterface property value
+        String subInterfaceNodeTemplateId = subInterfaceTemplateConsolidationData
+            .getNodeTemplateId();
+        NodeTemplate subInterfaceNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
+            subInterfaceNodeTemplateId);
+        String subInterfaceType = getSubInterfaceTypeSuffix(subInterfaceNodeTemplate
+            .getType());
+        Object propertyValue = getSubInterfacePropertyValue(substitutionTemplateInputName,
+            subInterfaceType, subInterfaceInputType, serviceTemplate,
+            subInterfaceNodeTemplateId);
+        //If the value object is Optional.empty it implies that the property name was not
+        // found in the input name
+        if (!(propertyValue instanceof Optional)) {
+          abstractPropertyValue.add(propertyValue);
+        }
+      }
+    }
+  }
+
   private void updateAbstractPropertyValue(String substitutionTemplateInputName,
                                            ParameterDefinition parameterDefinition,
                                            List<Object> abstractPropertyValue,
@@ -2642,10 +2849,7 @@ public class UnifiedCompositionService {
     } else {
       Object propertyValue = abstractPropertyValue.get(0);
       String entrySchemaType = parameterDefinition.getEntry_schema().getType();
-      if (entrySchemaType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
-          || entrySchemaType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
-          || entrySchemaType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
-          || entrySchemaType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
+      if (PropertyType.getSimplePropertyTypes().contains(entrySchemaType.toLowerCase())
           || entrySchemaType.equals(PropertyTypeExt.JSON.getDisplayName())) {
         abstractSubstituteProperties.put(substitutionTemplateInputName, abstractPropertyValue);
       } else {
@@ -2656,7 +2860,6 @@ public class UnifiedCompositionService {
 
   private void updateIdenticalPropertyValue(String identicalValuePropertyName,
                                             String substitutionTemplateInputName,
-                                            String computeType,
                                             UnifiedCompositionEntity entity,
                                             UnifiedCompositionData unifiedCompositionData,
                                             ServiceTemplate serviceTemplate,
@@ -2678,73 +2881,95 @@ public class UnifiedCompositionService {
   private Optional<Object> getIdenticalPropertyValueByType(String identicalValuePropertyName,
                                                            String substitutionTemplateInputName,
                                                            UnifiedCompositionEntity entity,
-                                                           UnifiedCompositionData unifiedCompositionData,
+                                                           UnifiedCompositionData
+                                                               unifiedCompositionData,
                                                            ServiceTemplate serviceTemplate,
                                                            TranslationContext context) {
 
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
         unifiedCompositionData.getComputeTemplateConsolidationData();
 
-    Optional<Object> computeIdenticalPropertyValue;
+    Optional<Object> identicalPropertyValue = Optional.empty();
     switch (entity) {
-      case Compute:
-        computeIdenticalPropertyValue =
+      case COMPUTE:
+        identicalPropertyValue =
             getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
-                entity, computeTemplateConsolidationData, context);
-        return computeIdenticalPropertyValue.isPresent() ? Optional.of(
-            computeIdenticalPropertyValue.get()) : Optional.empty();
-
-      case Other:
-        computeIdenticalPropertyValue =
+                 computeTemplateConsolidationData, context);
+        break;
+      case OTHER:
+        identicalPropertyValue =
             getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
-                entity, computeTemplateConsolidationData, context);
-        return computeIdenticalPropertyValue.isPresent() ? Optional.of(
-            computeIdenticalPropertyValue.get()) : Optional.empty();
-
-      case Port:
+                 computeTemplateConsolidationData, context);
+        break;
+      case PORT:
         List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
             unifiedCompositionData.getPortTemplateConsolidationDataList();
         for (PortTemplateConsolidationData portTemplateConsolidationData : portTemplateConsolidationDataList) {
           String portType =
               ConsolidationDataUtil.getPortType(portTemplateConsolidationData.getNodeTemplateId());
           if (substitutionTemplateInputName.contains(portType)) {
-            return getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
-                entity, portTemplateConsolidationData, context);
+            return getIdenticalPropertyValue(identicalValuePropertyName,
+                serviceTemplate, portTemplateConsolidationData, context);
           }
         }
+        break;
+      default:
+        break;
     }
-
-    return Optional.empty();
-
+    return identicalPropertyValue;
   }
 
 
-  private PortInputType getPortInputType(String inputName,
-                                         UnifiedCompositionData unifiedCompositionData) {
-    String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
+  private PropertyInputType getPortInputType(String inputName,
+                                             UnifiedCompositionData unifiedCompositionData) {
+    String portInputPrefix = UnifiedCompositionEntity.PORT.getDisplayName().toLowerCase() + "_";
     ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
         .getComputeTemplateConsolidationData();
     List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
         getPortTemplateConsolidationDataList(unifiedCompositionData);
     //Scan the available port node template ids to check if the input is of the form
     // "port_<port_node_template_id>_<property_name>"
-    for (PortTemplateConsolidationData portTemplateConsolidationData :
-        portTemplateConsolidationDataList) {
-      String portNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
-      String portNodeTemplateIdPrefix = portInputPrefix + portNodeTemplateId;
-      if (inputName.startsWith(portNodeTemplateIdPrefix)) {
-        return PortInputType.NodeTemplateId;
-      }
+    if (portTemplateConsolidationDataList.stream().map(EntityConsolidationData::getNodeTemplateId)
+        .map(portNodeTemplateId -> portInputPrefix + portNodeTemplateId).anyMatch(inputName::startsWith)) {
+      return PropertyInputType.NODE_TEMPLATE_ID;
     }
     //Check whether the input is of the form "port_<port_type>_<property_name>"
     Set<String> portTypes = computeTemplateConsolidationData.getPorts().keySet();
-    for (String portType : portTypes) {
-      String expectedPortTypeSusbtring = portInputPrefix + portType + "_";
-      if (inputName.startsWith(expectedPortTypeSusbtring)) {
-        return PortInputType.PortType;
-      }
+    if (portTypes.stream().map(portType -> portInputPrefix + portType + "_").anyMatch(inputName::startsWith)) {
+      return PropertyInputType.TYPE;
+    }
+    return PropertyInputType.OTHER;
+  }
+
+  private PropertyInputType getSubInterfaceInputType(String inputName,
+                                             UnifiedCompositionData unifiedCompositionData) {
+    String subInterfaceInputPrefix = UnifiedCompositionEntity.SUB_INTERFACE.getDisplayName().toLowerCase()
+        + "_";
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+    //Scan the available port node template ids to check if the input is of the form
+    // "subinterface_<subinterface_node_template_id>_<property_name>"
+    if (subInterfaceTemplateConsolidationDataList.stream().map(EntityConsolidationData::getNodeTemplateId)
+        .map(subInterfaceNodeTemplateId -> subInterfaceInputPrefix
+            + subInterfaceNodeTemplateId)
+        .anyMatch(inputName::startsWith)) {
+      return PropertyInputType.NODE_TEMPLATE_ID;
+    }
+    //Check whether the input is of the form "subinterface_<subinterface_type>_<property_name>"
+    Set<String> subInterfaceTypes = new HashSet<>();
+    List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
+        getPortTemplateConsolidationDataList(unifiedCompositionData);
+    for (PortTemplateConsolidationData portTemplateConsolidationData :
+        portTemplateConsolidationDataList) {
+      subInterfaceTypes.addAll(portTemplateConsolidationData.getAllSubInterfaceNodeTypes());
     }
-    return PortInputType.Other;
+
+    if (subInterfaceTypes.stream().map(UnifiedCompositionUtil::getSubInterfaceTypeSuffix)
+        .map(subInterfaceTypeSuffix -> subInterfaceInputPrefix + subInterfaceTypeSuffix + "_")
+        .anyMatch(inputName::startsWith)) {
+      return PropertyInputType.TYPE;
+    }
+    return PropertyInputType.OTHER;
   }
 
   private void cleanServiceTemplate(ServiceTemplate serviceTemplate,
@@ -2768,8 +2993,8 @@ public class UnifiedCompositionService {
     context.addCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
         nodeTemplateIdToRemove,
         entity.getClass() == ComputeTemplateConsolidationData.class
-            ? UnifiedCompositionEntity.Compute
-            : UnifiedCompositionEntity.Port,
+            ? COMPUTE
+            : UnifiedCompositionEntity.PORT,
         nodeTemplateToRemove);
 
   }
@@ -2795,7 +3020,6 @@ public class UnifiedCompositionService {
     Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template()
         .getGroups() == null ? new HashMap<>()
         : serviceTemplate.getTopology_template().getGroups();
-    String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     String nodeRelatedAbstractNodeId =
         context.getUnifiedAbstractNodeTemplateId(serviceTemplate, entity.getNodeTemplateId());
 
@@ -2822,25 +3046,6 @@ public class UnifiedCompositionService {
     groupEntry.getValue().setMembers(members);
   }
 
-  private void updateSubstitutableNodeTemplateRequirements(ServiceTemplate serviceTemplate,
-                                                           ServiceTemplate substitutionServiceTemplate) {
-    if (Objects.isNull(substitutionServiceTemplate.getTopology_template())) {
-      return;
-    }
-
-    SubstitutionMapping substitution_mappings =
-        substitutionServiceTemplate.getTopology_template().getSubstitution_mappings();
-
-    if (Objects.isNull(substitution_mappings)) {
-      return;
-    }
-
-    String node_type = substitution_mappings.getNode_type();
-    Map<String, List<String>> requirements = substitution_mappings.getRequirements();
-
-
-  }
-
   private void updateSubstitutionMapping(ServiceTemplate serviceTemplate,
                                          TranslationContext context) {
     SubstitutionMapping substitutionMappings =
@@ -2938,118 +3143,6 @@ public class UnifiedCompositionService {
         .ifPresent(unifiedNestedNodeTypeIdVal -> updateNestedNodeTemplate(
             unifiedNestedNodeTypeIdVal, nestedNodeTemplateId, nestedNodeTemplate,
             mainServiceTemplate, context));
-
-    //updateNestedNodeTemplateRequirement(nestedNodeTemplateId, mainServiceTemplate,
-    //nestedServiceTemplate, context);
-
-    //updateNodeTemplateRequirements(nestedNodeTemplateId, mainServiceTemplate,
-    //nestedServiceTemplate, context);
-
-    //updateNodeDependencyRequirement(mainServiceTemplate, context, nestedNodeTemplate);
-  }
-
-  private void updateNestedNodeTemplateRequirement(String nestedNodeTemplateId,
-                                                   ServiceTemplate mainServiceTemplate,
-                                                   ServiceTemplate nestedServiceTemplate,
-                                                   TranslationContext context) {
-    NestedTemplateConsolidationData nestedTemplateConsolidationData =
-        ConsolidationDataUtil
-            .getNestedTemplateConsolidationData(context, mainServiceTemplate, null,
-                nestedNodeTemplateId);
-
-    FileComputeConsolidationData fileComputeConsolidationData =
-        context.getConsolidationData().getComputeConsolidationData().getFileComputeConsolidationData
-            (ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
-
-
-    TypeComputeConsolidationData compute =
-        fileComputeConsolidationData.getAllTypeComputeConsolidationData().iterator().next();
-
-    if (Objects.isNull(nestedTemplateConsolidationData)) {
-      return;
-    }
-
-    Map<String, List<RequirementAssignmentData>> nodesConnectedOut =
-        nestedTemplateConsolidationData.getNodesConnectedOut();
-
-    if (MapUtils.isEmpty(nodesConnectedOut)) {
-      return;
-    }
-
-    updateRequirements(nestedNodeTemplateId, mainServiceTemplate, nestedServiceTemplate, compute,
-        nodesConnectedOut);
-  }
-
-  private void updateRequirements(String nestedNodeTemplateId, ServiceTemplate mainServiceTemplate,
-                                  ServiceTemplate nestedServiceTemplate,
-                                  TypeComputeConsolidationData compute,
-                                  Map<String, List<RequirementAssignmentData>> nodesConnectedOut) {
-    NodeTemplate nodeTemplate =
-        DataModelUtil.getNodeTemplate(mainServiceTemplate, nestedNodeTemplateId);
-
-    for (List<RequirementAssignmentData> requirementAssignmentDataList : nodesConnectedOut
-        .values()) {
-      for (RequirementAssignmentData data : requirementAssignmentDataList) {
-        if (!data.getRequirementId().equals("dependency")) {
-          DataModelUtil.addRequirementAssignment(nodeTemplate, data.getRequirementId(),
-              cloneRequirementAssignment(data.getRequirementAssignment()));
-          updateRequirementInSubMapping(nestedServiceTemplate, compute, data);
-
-        }
-      }
-    }
-
-    removeUneccessaryRequirements(nodeTemplate);
-  }
-
-  private void updateRequirementInSubMapping(ServiceTemplate nestedServiceTemplate,
-                                             TypeComputeConsolidationData compute,
-                                             RequirementAssignmentData data) {
-    List<String> subMappingRequirement =
-        Arrays.asList(compute.getAllComputeNodeTemplateIds().iterator().next(), "dependency");
-    DataModelUtil.addSubstitutionMappingReq(nestedServiceTemplate, data.getRequirementId(),
-        subMappingRequirement);
-  }
-
-
-  private RequirementAssignment cloneRequirementAssignment(RequirementAssignment reqToClone) {
-    RequirementAssignment requirementAssignment = new RequirementAssignment();
-
-    requirementAssignment.setRelationship(reqToClone.getRelationship());
-    requirementAssignment.setNode(reqToClone.getNode());
-    requirementAssignment.setCapability(reqToClone.getCapability());
-
-    return requirementAssignment;
-  }
-
-  private void removeUneccessaryRequirements(NodeTemplate nodeTemplate) {
-    List<Map<String, RequirementAssignment>> reqsToRemove = new ArrayList<>();
-    for (Map<String, RequirementAssignment> requirementDefinitionMap : nodeTemplate
-        .getRequirements()) {
-      if (requirementDefinitionMap.containsKey("dependency")) {
-        reqsToRemove.add(requirementDefinitionMap);
-      }
-    }
-
-    nodeTemplate.getRequirements().removeAll(reqsToRemove);
-  }
-
-  private RequirementAssignment getRequirementAssignmentFromDefinition(
-      Map.Entry<String, RequirementDefinition> requirementDefinitionEntry) {
-
-    RequirementAssignment requirementAssignment = new RequirementAssignment();
-    if (requirementDefinitionEntry.getValue() instanceof RequirementDefinition) {
-      requirementAssignment.setCapability(requirementDefinitionEntry.getValue().getCapability());
-      requirementAssignment.setNode(requirementDefinitionEntry.getValue().getNode());
-      requirementAssignment
-          .setRelationship(requirementDefinitionEntry.getValue().getRelationship());
-    } else if (requirementDefinitionEntry.getValue() instanceof Map) {
-      Map<String, Object> reqAsMap = (Map<String, Object>) requirementDefinitionEntry.getValue();
-      requirementAssignment.setCapability((String) reqAsMap.get("capability"));
-      requirementAssignment.setNode((String) reqAsMap.get("node"));
-      requirementAssignment.setRelationship((String) reqAsMap.get("relationship"));
-    }
-    return requirementAssignment;
   }
 
   private void updateNestedNodeTemplateProperties(ServiceTemplate nestedServiceTemplate,
@@ -3148,8 +3241,7 @@ public class UnifiedCompositionService {
     }
   }
 
-  private Optional<String> getNewNestedNodeTypeId(ServiceTemplate mainServiceTemplate,
-                                                  ServiceTemplate nestedServiceTemplate,
+  private Optional<String> getNewNestedNodeTypeId(ServiceTemplate nestedServiceTemplate,
                                                   TranslationContext context) {
     FileComputeConsolidationData fileComputeConsolidationData =
         context.getConsolidationData().getComputeConsolidationData()
@@ -3168,7 +3260,7 @@ public class UnifiedCompositionService {
       FileComputeConsolidationData fileComputeConsolidationData) {
     List<TypeComputeConsolidationData> typeComputeConsolidationDatas =
         new ArrayList<>(fileComputeConsolidationData.getAllTypeComputeConsolidationData());
-    if (typeComputeConsolidationDatas.size() == 0) {
+    if (typeComputeConsolidationDatas.isEmpty()) {
       return null;
     } else {
       String computeNodeType = fileComputeConsolidationData.getAllComputeTypes().iterator().next();
@@ -3300,15 +3392,16 @@ public class UnifiedCompositionService {
 
   private Object getPortPropertyValue(String inputName,
                                       String computeType,
-                                      PortInputType portInputType,
+                                      PropertyInputType portInputType,
                                       ServiceTemplate serviceTemplate,
                                       String portNodeTemplateId) {
     //Get the input prefix to extract the property name from the input name
-    String portInputPrefix = getPortInputPrefix(
-        portNodeTemplateId, portInputType);
+    String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
+    String portInputPrefix = getPropertyInputPrefix(
+        portNodeTemplateId, portType, portInputType, UnifiedCompositionEntity.PORT);
     //Get the property name from the input
     Optional<String> propertyName = getPropertyNameFromInput(inputName,
-        UnifiedCompositionEntity.Port, computeType, portInputPrefix);
+        UnifiedCompositionEntity.PORT, computeType, portInputPrefix);
     //Get the property value from the node template
     if (propertyName.isPresent()) {
       NodeTemplate portNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
@@ -3320,27 +3413,6 @@ public class UnifiedCompositionService {
     return Optional.empty();
   }
 
-  private Optional<String> getPortTypeFromInput(
-      String inputName,
-      String portNodeTemplateId,
-      ComputeTemplateConsolidationData computeTemplateConsolidationData) {
-    String portTypeFromInput = null;
-    String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
-    String portNodeTemplateIdPrefix = portInputPrefix + portNodeTemplateId;
-    if (inputName.startsWith(portNodeTemplateIdPrefix)) {
-      return Optional.empty();
-    }
-    Set<String> portTypes = computeTemplateConsolidationData.getPorts().keySet();
-    for (String portType : portTypes) {
-      String expectedPortTypeSusbtring = "_" + portType + "_";
-      if (inputName.contains(expectedPortTypeSusbtring)) {
-        portTypeFromInput = portType;
-        break;
-      }
-    }
-    return Optional.ofNullable(portTypeFromInput);
-  }
-
   private Object getComputePropertyValue(
       String inputName,
       ServiceTemplate serviceTemplate,
@@ -3349,16 +3421,37 @@ public class UnifiedCompositionService {
         computeTemplateConsolidationData.getNodeTemplateId());
     String nodeType = getComputeTypeSuffix(nodeTemplate.getType());
     Optional<String> propertyName =
-        getPropertyNameFromInput(inputName, UnifiedCompositionEntity.Compute, nodeType, null);
+        getPropertyNameFromInput(inputName, COMPUTE, nodeType, null);
     if (propertyName.isPresent()) {
       return getPropertyValueFromNodeTemplate(propertyName.get(), nodeTemplate);
     }
     return Optional.empty();
   }
 
+  private Object getSubInterfacePropertyValue(String inputName,
+                                      String subInterfaceTypeSuffix,
+                                      PropertyInputType propertyInputType,
+                                      ServiceTemplate serviceTemplate,
+                                      String subInterfaceNodeTemplateId) {
+    //Get the input prefix to extract the property name from the input name
+    String propertyInputPrefix = getPropertyInputPrefix(subInterfaceNodeTemplateId,
+        subInterfaceTypeSuffix, propertyInputType, UnifiedCompositionEntity.SUB_INTERFACE);
+    //Get the property name from the input
+    Optional<String> propertyName = getPropertyNameFromInput(inputName,
+        UnifiedCompositionEntity.SUB_INTERFACE, null, propertyInputPrefix);
+    //Get the property value from the node template
+    if (propertyName.isPresent()) {
+      NodeTemplate subInterfaceNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
+          subInterfaceNodeTemplateId);
+      if (Objects.nonNull(subInterfaceNodeTemplate)) {
+        return getPropertyValueFromNodeTemplate(propertyName.get(), subInterfaceNodeTemplate);
+      }
+    }
+    return Optional.empty();
+  }
+
   private Optional<Object> getIdenticalPropertyValue(String identicalValuePropertyName,
                                                      ServiceTemplate serviceTemplate,
-                                                     UnifiedCompositionEntity unifiedCompositionEntity,
                                                      EntityConsolidationData entity,
                                                      TranslationContext context) {
     NodeTemplate nodeTemplate =
@@ -3372,12 +3465,17 @@ public class UnifiedCompositionService {
   }
 
   private UnifiedCompositionEntity getInputCompositionEntity(String inputName) {
-    UnifiedCompositionEntity inputCompositionEntity = UnifiedCompositionEntity.Other;
-    String inputType = inputName.substring(0, inputName.indexOf('_'));
-    if (inputType.equals(UnifiedCompositionEntity.Compute.name().toLowerCase())) {
-      inputCompositionEntity = UnifiedCompositionEntity.Compute;
-    } else if (inputType.equals(UnifiedCompositionEntity.Port.name().toLowerCase())) {
-      inputCompositionEntity = UnifiedCompositionEntity.Port;
+    UnifiedCompositionEntity inputCompositionEntity = UnifiedCompositionEntity.OTHER;
+    if (inputName.indexOf('_') != -1) {
+      String inputType = inputName.substring(0, inputName.indexOf('_'));
+      if (inputType.equalsIgnoreCase(COMPUTE.getDisplayName())) {
+        inputCompositionEntity = COMPUTE;
+      } else if (inputType.equalsIgnoreCase(UnifiedCompositionEntity.PORT.getDisplayName())) {
+        inputCompositionEntity = UnifiedCompositionEntity.PORT;
+      } else if (inputType.equalsIgnoreCase(UnifiedCompositionEntity.SUB_INTERFACE
+          .getDisplayName())) {
+        inputCompositionEntity = UnifiedCompositionEntity.SUB_INTERFACE;
+      }
     }
     return inputCompositionEntity;
   }
@@ -3385,16 +3483,17 @@ public class UnifiedCompositionService {
   private Optional<String> getPropertyNameFromInput(
       String inputName,
       UnifiedCompositionEntity compositionEntity,
-      String computeType, String portInputPrefix) {
+      String entityType, String propertyInputPrefix) {
     String propertyName = null;
     switch (compositionEntity) {
-      case Compute:
-        propertyName = inputName.substring(inputName.lastIndexOf(computeType)
-            + computeType.length() + 1);
+      case COMPUTE:
+        propertyName = inputName.substring(inputName.lastIndexOf(entityType)
+            + entityType.length() + 1);
         break;
-      case Port:
-        if (inputName.startsWith(portInputPrefix)) {
-          propertyName = inputName.split(portInputPrefix)[1];
+      case PORT:
+      case SUB_INTERFACE:
+        if (inputName.startsWith(propertyInputPrefix)) {
+          propertyName = inputName.split(propertyInputPrefix)[1];
         }
         break;
       default:
@@ -3403,47 +3502,49 @@ public class UnifiedCompositionService {
     return Optional.ofNullable(propertyName);
   }
 
-  private String getPortInputPrefix(
-      String portNodeTemplateId,
-      PortInputType portInputType) {
-    String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
-    String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
-    if (portInputType == PortInputType.NodeTemplateId) {
-      portInputPrefix += portNodeTemplateId + "_";
-    } else if (portInputType == PortInputType.PortType) {
-      portInputPrefix += portType + "_";
+  private String getPropertyInputPrefix(String nodeTemplateId,
+                                        String propertyEntityType,
+                                        PropertyInputType propertyInputType,
+                                        UnifiedCompositionEntity unifiedCompositionEntity) {
+    String propertyInputPrefix = unifiedCompositionEntity.getDisplayName().toLowerCase() + "_";
+    if (propertyInputType == PropertyInputType.NODE_TEMPLATE_ID) {
+      propertyInputPrefix += nodeTemplateId + "_";
+    } else if (propertyInputType == PropertyInputType.TYPE) {
+      propertyInputPrefix += propertyEntityType + "_";
     }
-    return portInputPrefix;
+    return propertyInputPrefix;
   }
 
   private boolean isIdenticalValueProperty(String inputName,
-                                           UnifiedCompositionEntity unifiedCompositionEntity,
-                                           TranslationContext context) {
+                                           UnifiedCompositionEntity unifiedCompositionEntity) {
 
     List<String> identicalValuePropertyList =
         consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity);
 
     StringBuilder builder = getPropertyValueStringBuilder(unifiedCompositionEntity);
+    if (Objects.isNull(builder)) {
+      return false;
+    }
 
     boolean isMatchingProperty = Pattern.matches(builder.toString(), inputName);
-    return (isMatchingProperty
+    return isMatchingProperty
         && isPropertyFromIdenticalValuesList(inputName, unifiedCompositionEntity,
-        identicalValuePropertyList));
+        identicalValuePropertyList);
   }
 
   private boolean isPropertyFromIdenticalValuesList(String inputName,
                                                     UnifiedCompositionEntity unifiedCompositionEntity,
                                                     List<String> identicalValuePropertyList) {
     switch (unifiedCompositionEntity) {
-      case Compute:
+      case COMPUTE:
         return identicalValuePropertyList.contains(getIdenticalValuePropertyName(inputName,
-            unifiedCompositionEntity, null).get());
+            unifiedCompositionEntity).get());
 
-      case Other:
+      case OTHER:
         return identicalValuePropertyList.contains(getIdenticalValuePropertyName(inputName,
-            unifiedCompositionEntity, null).get());
+            unifiedCompositionEntity).get());
 
-      case Port:
+      case PORT:
         return getPortPropertyNameFromInput(inputName, identicalValuePropertyList).isPresent();
 
       default:
@@ -3465,15 +3566,18 @@ public class UnifiedCompositionService {
       UnifiedCompositionEntity unifiedCompositionEntity) {
 
     switch (unifiedCompositionEntity) {
-      case Compute:
+      case COMPUTE:
         return getComputePropertyValueStringBuilder();
 
-      case Other:
+      case OTHER:
         return getComputePropertyValueStringBuilder();
 
-      case Port:
+      case PORT:
         return getPortPropertyValueStringBuilder();
 
+      case SUB_INTERFACE:
+        return getSubInterfacePropertyValueStringBuilder();
+
       default:
         return null;
     }
@@ -3494,17 +3598,24 @@ public class UnifiedCompositionService {
     return builder;
   }
 
+  private StringBuilder getSubInterfacePropertyValueStringBuilder() {
+    StringBuilder builder;
+    builder = new StringBuilder(SUB_INTERFACE_PROPERTY_VALUE_PREFIX);
+    builder.append(".+");
+    return builder;
+  }
+
   private Optional<String> getIdenticalValuePropertyName(String input,
-                                                         UnifiedCompositionEntity unifiedCompositionEntity,
-                                                         TranslationContext context) {
+                                                         UnifiedCompositionEntity
+                                                             unifiedCompositionEntity) {
     switch (unifiedCompositionEntity) {
-      case Compute:
+      case COMPUTE:
         return Optional.of(input.split("_")[1]);
 
-      case Other:
+      case OTHER:
         return Optional.of(input.split("_")[1]);
 
-      case Port:
+      case PORT:
         return getPortPropertyNameFromInput(input, consolidationService
             .getPropertiesWithIdenticalVal(unifiedCompositionEntity));
 
@@ -3533,21 +3644,28 @@ public class UnifiedCompositionService {
       if (Objects.nonNull(computeTemplateConsolidationData)) {
         consolidationNodeTemplateIdAndType
             .put(computeTemplateConsolidationData.getNodeTemplateId(),
-                UnifiedCompositionEntity.Compute);
+                COMPUTE);
+      }
+      List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+          getSubInterfaceTemplateConsolidationDataList(unifiedCompositionData);
+      for (SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData :
+          subInterfaceTemplateConsolidationDataList) {
+        consolidationNodeTemplateIdAndType.put(subInterfaceTemplateConsolidationData.getNodeTemplateId(),
+            UnifiedCompositionEntity.SUB_INTERFACE);
       }
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
           getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
           portTemplateConsolidationDataList) {
         consolidationNodeTemplateIdAndType.put(portTemplateConsolidationData.getNodeTemplateId(),
-            UnifiedCompositionEntity.Port);
+            UnifiedCompositionEntity.PORT);
       }
       NestedTemplateConsolidationData nestedTemplateConsolidationData =
           unifiedCompositionData.getNestedTemplateConsolidationData();
       if (Objects.nonNull(nestedTemplateConsolidationData)) {
         consolidationNodeTemplateIdAndType
             .put(nestedTemplateConsolidationData.getNodeTemplateId(),
-                UnifiedCompositionEntity.Nested);
+                UnifiedCompositionEntity.NESTED);
       }
     }
     return consolidationNodeTemplateIdAndType;
@@ -3559,9 +3677,9 @@ public class UnifiedCompositionService {
         ArrayList<>() : unifiedCompositionData.getPortTemplateConsolidationDataList();
   }
 
-  private enum PortInputType {
-    NodeTemplateId,
-    PortType,
-    Other;
+  private enum PropertyInputType {
+    NODE_TEMPLATE_ID,
+    TYPE,
+    OTHER
   }
 }
index 7f30254..4d9a269 100644 (file)
@@ -1,15 +1,46 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.services.heattotosca;
 
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.ListMultimap;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FilePortConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * Utility class for consolidation data collection helper methods.
@@ -18,6 +49,10 @@ public class UnifiedCompositionUtil {
 
   protected static Logger logger = LoggerFactory.getLogger(UnifiedCompositionUtil.class);
 
+  private UnifiedCompositionUtil() {
+    //Hiding the implicit public constructor
+  }
+
   /**
    * Gets all ports per port type, which are connected to the computes from the input
    * computeTemplateConsolidationDataCollection.
@@ -40,6 +75,37 @@ public class UnifiedCompositionUtil {
     return portTypeToIds;
   }
 
+  static ListMultimap<String, SubInterfaceTemplateConsolidationData>
+        collectAllSubInterfacesOfEachTypesFromPorts(Collection<PortTemplateConsolidationData>
+                                                    portTemplateConsolidationDataCollection) {
+    ListMultimap<String, SubInterfaceTemplateConsolidationData> subInterfaceDataByType = ArrayListMultimap.create();
+    for (PortTemplateConsolidationData port : portTemplateConsolidationDataCollection) {
+      Set<String> allSubInterfaceNodeTypes = port.getAllSubInterfaceNodeTypes();
+      if (CollectionUtils.isEmpty(allSubInterfaceNodeTypes)) {
+        continue;
+      }
+      for (String subInterfaceNodeType : allSubInterfaceNodeTypes) {
+        subInterfaceDataByType.putAll(subInterfaceNodeType,
+            port.getSubInterfaceConsolidationData(subInterfaceNodeType));
+      }
+    }
+    return subInterfaceDataByType;
+  }
+
+  static List<String> getSubInterfaceNodeTemplateIdsByType(PortTemplateConsolidationData
+                                                               portTemplateConsolidationData,
+                                                           String subInterfaceType) {
+    List<String> subInterfaceNodeTemplateIds = new ArrayList<>();
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList =
+        portTemplateConsolidationData.getSubInterfaceConsolidationData(subInterfaceType);
+    if (CollectionUtils.isNotEmpty(subInterfaceTemplateConsolidationDataList)) {
+      subInterfaceNodeTemplateIds = subInterfaceTemplateConsolidationDataList.stream()
+          .map(SubInterfaceTemplateConsolidationData::getNodeTemplateId)
+          .collect(Collectors.toList());
+    }
+    return subInterfaceNodeTemplateIds;
+  }
+
   private static void addPortsToMap(Map<String, List<String>> portTypeToIds,
                                     Map<String, List<String>> ports) {
     for (Map.Entry<String, List<String>> portTypeToIdEntry : ports.entrySet()) {
@@ -48,5 +114,116 @@ public class UnifiedCompositionUtil {
     }
   }
 
+  static String getComputeTypeSuffix(ServiceTemplate serviceTemplate,
+                                      String computeNodeTemplateId) {
+    NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+    if (Objects.nonNull(computeNodeTemplate)) {
+      return getComputeTypeSuffix(computeNodeTemplate.getType());
+    }
+    return null;
+  }
+
+  public static String getNewComputeNodeTemplateId(ServiceTemplate serviceTemplate, String computeNodeTemplateId) {
+    return getComputeTypeSuffix(serviceTemplate, computeNodeTemplateId);
+  }
+
+  static String getComputeTypeSuffix(String computeType) {
+    return DataModelUtil.getNamespaceSuffix(computeType);
+  }
+
+  public static ComputeTemplateConsolidationData getConnectedComputeConsolidationData(
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      String portNodeTemplateId) {
+    for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
+      if (Objects.isNull(unifiedCompositionData.getComputeTemplateConsolidationData().getPorts())) {
+        continue;
+      }
+      Collection<List<String>> portsCollection =
+          unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values();
+      for (List<String> portIdList : portsCollection) {
+        if (portIdList.contains(portNodeTemplateId)) {
+          return unifiedCompositionData.getComputeTemplateConsolidationData();
+        }
+      }
+    }
+    return null;
+  }
+
+  //The ID should be <vm_type>_<port_type> or <vm_type>_<portNodeTemplateId>
+  public static String getNewPortNodeTemplateId(
+      String portNodeTemplateId,
+      String connectedComputeNodeType,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+
+    StringBuilder newPortNodeTemplateId = new StringBuilder();
+    String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
+    newPortNodeTemplateId.append(DataModelUtil.getNamespaceSuffix(connectedComputeNodeType));
+    if (computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
+      //single port
+      newPortNodeTemplateId.append("_").append(portNodeTemplateId);
+    } else {
+      //consolidation port
+      newPortNodeTemplateId.append("_").append(portType);
+    }
+    return newPortNodeTemplateId.toString();
+  }
+
+  public static String getNewSubInterfaceNodeTemplateId(ServiceTemplate serviceTemplate,
+                                                  String connectedComputeNodeType,
+                                                  ComputeTemplateConsolidationData computeTemplateConsolidationData,
+                                                  SubInterfaceTemplateConsolidationData
+                                                            subInterfaceTemplateConsolidationData,
+                                                  TranslationContext context) {
+    //The ID should be <vm_type>_<portType/NodetemplateId>_<subInterface_type>
+    // or <vm_type>_<portType/NodetemplateId>_<subInterfaceNodeTemplateId>
+    StringBuilder newSubInterfaceNodeTemplateId = new StringBuilder();
+    newSubInterfaceNodeTemplateId.append(getNewPortNodeTemplateId(subInterfaceTemplateConsolidationData
+        .getParentPortNodeTemplateId(), connectedComputeNodeType, computeTemplateConsolidationData));
+    PortTemplateConsolidationData portTemplateConsolidationData =
+        getSubInterfacePortTemplateConsolidationData(serviceTemplate, subInterfaceTemplateConsolidationData, context);
+    NodeTemplate subInterfaceNodeTemplate =
+        DataModelUtil.getNodeTemplate(serviceTemplate, subInterfaceTemplateConsolidationData.getNodeTemplateId());
+    if (Objects.nonNull(portTemplateConsolidationData)) {
+      List<String> subInterfaceNodeTemplateIdsByType =
+          UnifiedCompositionUtil.getSubInterfaceNodeTemplateIdsByType(portTemplateConsolidationData,
+              subInterfaceNodeTemplate.getType());
+      if (CollectionUtils.isNotEmpty(subInterfaceNodeTemplateIdsByType)) {
+        //If there are more than one subinterfaces with same type use node template id
+        if (subInterfaceNodeTemplateIdsByType.size() > 1) {
+          newSubInterfaceNodeTemplateId.append("_").append(subInterfaceTemplateConsolidationData.getNodeTemplateId());
+        } else {
+          //Add sub interface type since we have only one subinterface per type
+          String subInterfaceTypeSuffix = getSubInterfaceTypeSuffix(subInterfaceNodeTemplate.getType());
+          newSubInterfaceNodeTemplateId.append("_").append(subInterfaceTypeSuffix);
+        }
+        return newSubInterfaceNodeTemplateId.toString();
+      }
+    }
+    return subInterfaceTemplateConsolidationData.getNodeTemplateId();
+  }
+
+  static PortTemplateConsolidationData getSubInterfacePortTemplateConsolidationData(ServiceTemplate serviceTemplate,
+                                                                               SubInterfaceTemplateConsolidationData
+                                                                                   subInterfaceTemplateConsolidationData,
+                                                                                     TranslationContext context) {
+    FilePortConsolidationData filePortConsolidationData = context.getConsolidationData().getPortConsolidationData()
+        .getFilePortConsolidationData(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+    PortTemplateConsolidationData portTemplateConsolidationData = null;
+    if (filePortConsolidationData != null) {
+      portTemplateConsolidationData = filePortConsolidationData
+          .getPortTemplateConsolidationData(subInterfaceTemplateConsolidationData.getParentPortNodeTemplateId());
+    }
+    return portTemplateConsolidationData;
+  }
+
+  static String getSubInterfaceTypeSuffix(String nodeType) {
+    return DataModelUtil.getNamespaceSuffix(nodeType);
+  }
+
+  public static List<SubInterfaceTemplateConsolidationData> getSubInterfaceTemplateConsolidationDataList(
+      UnifiedCompositionData unifiedCompositionData) {
+    return unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList() == null ? new
+        ArrayList<>() : unifiedCompositionData.getSubInterfaceTemplateConsolidationDataList();
+  }
 
 }
index 0933174..622f3c1 100644 (file)
@@ -1,27 +1,27 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
+
 package org.openecomp.sdc.translator.services.heattotosca.helper;
 
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.heat.datatypes.model.ResourceReferenceFunctions;
 import org.openecomp.sdc.heat.services.HeatConstants;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
@@ -30,6 +30,7 @@ import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
 import org.openecomp.sdc.tosca.services.ToscaConstants;
 import org.openecomp.sdc.translator.datatypes.heattotosca.AttachedResourceId;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslatedHeatResource;
 import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil;
@@ -37,11 +38,14 @@ import org.openecomp.sdc.translator.services.heattotosca.ConsolidationEntityType
 import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
 import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationBase;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.Set;
 
 public class ContrailV2VirtualMachineInterfaceHelper {
   static Logger logger =
@@ -138,7 +142,7 @@ public class ContrailV2VirtualMachineInterfaceHelper {
   }
 
   /**
-   * Check if the input heat resource is Vlan sub interface resource
+   * Check if the input heat resource is Vlan sub interface resource.
    *
    * @param resource heat resource to be checked
    * @return true - if input resource is valn sub interface resource flase - otherwise.
@@ -154,6 +158,32 @@ public class ContrailV2VirtualMachineInterfaceHelper {
     return false;
   }
 
+  public boolean isVlanSubInterfaceConnectedToPortIndirectly(TranslateTo translateTo) {
+    Resource resource = translateTo.getResource();
+    TranslationContext context = translateTo.getContext();
+    Set<String> nestedHeatsFiles = context.getNestedHeatsFiles();
+    Map<String, Object> properties = resource.getProperties();
+
+    if (MapUtils.isNotEmpty(properties)
+        && properties.containsKey(HeatConstants.VMI_REFS_PROPERTY_NAME)) {
+      Map<String, Object> portReference = getPortReference(properties);
+
+      return CollectionUtils.isNotEmpty(nestedHeatsFiles)
+          && nestedHeatsFiles.contains(translateTo.getHeatFileName())
+          && portReference.containsKey(ResourceReferenceFunctions.GET_PARAM.getFunction());
+    }
+
+    return false;
+  }
+
+  private Map<String, Object> getPortReference(Map<String, Object> properties) {
+    Object portReferenceObj = properties.get(HeatConstants.VMI_REFS_PROPERTY_NAME);
+    List<Object> portReference =
+        portReferenceObj instanceof List ? (List<Object>) portReferenceObj : new ArrayList<>();
+    return CollectionUtils.isEmpty(portReference) ? new HashMap<>()
+        : (Map<String, Object>) portReference.get(0);
+  }
+
   private Optional<Object> getVlanTagPropertyValue(Resource resource) {
     Object vmiProperties = resource.getProperties()
         .get(HeatConstants.VMI_PROPERTIES_PROPERTY_NAME);
index 1d35795..686a9c8 100644 (file)
@@ -1,9 +1,6 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation;
 
+import static org.openecomp.sdc.translator.services.heattotosca.ConfigConstants.TRANS_MAPPING_DELIMITER_CHAR;
+
 import org.apache.commons.lang3.StringUtils;
 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
@@ -30,8 +28,9 @@ import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.Template;
 import org.openecomp.sdc.tosca.services.YamlUtil;
 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.EntityConsolidationData;
-import org.openecomp.sdc.translator.services.heattotosca.ConfigConstants;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil;
 import org.openecomp.sdc.translator.services.heattotosca.Constants;
 import org.openecomp.sdc.translator.services.heattotosca.FunctionTranslation;
@@ -243,10 +242,16 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation {
                                           String attName) {
     Resource resource = heatOrchestrationTemplate.getResources().get(resourceId);
     boolean isNestedResource = HeatToToscaUtil.isNestedResource(resource);
+    String heatPropertyName = propertyName;
     String toscaPropertyName = propertyName;
+    //For handling get_attr in inner levels for complex properties
+    if (propertyName.contains(TRANS_MAPPING_DELIMITER_CHAR)) {
+      heatPropertyName = propertyName.substring(0,
+          propertyName.indexOf(TRANS_MAPPING_DELIMITER_CHAR));
+    }
     if (!isNestedResource) {
       toscaPropertyName = HeatToToscaUtil.getToscaPropertyName(context, resource
-          .getType(), propertyName);
+          .getType(), heatPropertyName);
     }
     ConsolidationDataUtil
         .updateNodeGetAttributeIn(entityConsolidationData,
@@ -271,13 +276,22 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation {
 
       return Optional.of(
           ConsolidationDataUtil.getComputeTemplateConsolidationData(context, serviceTemplate,
-              computeType, resourceId));
+              computeType, resourceTranslatedId));
     } else if (ConsolidationDataUtil.isPortResource(heatOrchestrationTemplate, resourceId)) {
       return Optional.of(ConsolidationDataUtil
-          .getPortTemplateConsolidationData(context, serviceTemplate, resourceId));
+          .getPortTemplateConsolidationData(context, serviceTemplate, resourceId, resource.getType(),
+              resourceTranslatedId));
+    } else if (HeatToToscaUtil.isSubInterfaceResource(resource, context)) {
+      TranslateTo subInterfaceTo = new TranslateTo(heatFileName, serviceTemplate, heatOrchestrationTemplate,
+          resource, resourceId, resourceTranslatedId, context);
+      Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData =
+          ConsolidationDataUtil.getSubInterfaceTemplateConsolidationData(subInterfaceTo, resourceTranslatedId);
+      if (subInterfaceTemplateConsolidationData.isPresent()) {
+        return Optional.of(subInterfaceTemplateConsolidationData.get());
+      }
     } else if (HeatToToscaUtil.isNestedResource(resource)) {
       return Optional.ofNullable(ConsolidationDataUtil
-          .getNestedTemplateConsolidationData(context, serviceTemplate, heatFileName, resourceId));
+          .getNestedTemplateConsolidationData(context, serviceTemplate, heatFileName, resourceTranslatedId));
     }
     return Optional.empty();
   }
@@ -330,7 +344,7 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation {
       if (isInteger(attributeParamList.get(j))) {
         continue;
       }
-      attributeFullPath.append(ConfigConstants.TRANS_MAPPING_DELIMITER_CHAR);
+      attributeFullPath.append(TRANS_MAPPING_DELIMITER_CHAR);
       attributeFullPath.append(attributeParamList.get(j));
     }
     return attributeFullPath.toString();
@@ -341,13 +355,7 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation {
       return false;
     }
 
-    /*try {
-      Integer.parseInt(String.valueOf(inputNumber));
-      return true;
-    } catch (NumberFormatException exception) {
-      return false;
-    }*/
-    if(StringUtils.isNumeric(String.valueOf(inputNumber))){
+    if (StringUtils.isNumeric(String.valueOf(inputNumber))){
       return true;
     } else {
       return false;
@@ -377,15 +385,7 @@ public class FunctionTranslationGetAttrImpl implements FunctionTranslation {
       return getResourceTranslatedAttributesList(resource, context);
     }
 
-    if(!(attributeParamList.get(1) instanceof String)){
-      //todo - once dynamic attr name will be supported the commented line will be support it in
-      // the first translation phase.
-//      Object toscaAttributeValue = getToscaAttributeValue(serviceTemplate, resourceId, propertyName,
-//          attributeParamList.get(1), resource
-//              .getType(), heatFileName, heatOrchestrationTemplate, null, context);
-//      List<Object> dynamicAttrValue = new ArrayList<>();
-//      dynamicAttrValue.add(toscaAttributeValue);
-//      return Optional.of(dynamicAttrValue);
+    if (!(attributeParamList.get(1) instanceof String)) {
       return Optional.empty();
     }
 
index 8cccbb8..6809ce3 100644 (file)
@@ -1,21 +1,17 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
@@ -77,7 +73,7 @@ public abstract class ResourceTranslationBase {
         getResourceTranslatedId(heatFileName, heatOrchestrationTemplate, resourceId, context);
     context.getTranslatedResources().putIfAbsent(heatFileName, new HashSet<>());
 
-    if(isResourceWithSameIdAppearsInOtherFiles(heatFileName, resourceId, context)){
+    if (isResourceWithSameIdAppearsInOtherFiles(heatFileName, resourceId, context)) {
       throw new CoreException(
           new DuplicateResourceIdsInDifferentFilesErrorBuilder(resourceId).build());
     }
@@ -106,7 +102,7 @@ public abstract class ResourceTranslationBase {
 
   private boolean isResourceWithSameIdAppearsInOtherFiles(String heatFileName,
                                                           String resourceId,
-                                                          TranslationContext context){
+                                                          TranslationContext context) {
     Set<String> translatedResourceIdsFromOtherFiles =
         context.getTranslatedResourceIdsFromOtherFiles(heatFileName);
 
@@ -281,7 +277,7 @@ public abstract class ResourceTranslationBase {
           .getResource(heatOrchestrationTemplate, dependsOnResourceId,
               translateTo.getHeatFileName());
       if (HeatToToscaUtil
-          .isValidDependsOnCandidate(heatOrchestrationTemplate, sourceResource, targetResource,
+          .isValidDependsOnCandidate(sourceResource, targetResource,
               ConsolidationEntityType.OTHER, translateTo.getContext())) {
         requirementAssignment.setNode(resourceTranslatedId.get());
         requirementAssignment.setCapability(ToscaCapabilityType.NATIVE_NODE);
index 7d96bd0..310cb2b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +18,8 @@ package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslati
 
 import org.openecomp.sdc.common.togglz.ToggleableFeature;
 import org.openecomp.sdc.heat.services.HeatConstants;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
 import org.openecomp.sdc.tosca.services.DataModelUtil;
@@ -31,21 +33,24 @@ import java.util.Map;
 
 
 public class ResourceTranslationContrailV2VmInterfaceImpl extends ResourceTranslationBase {
+  protected static final Logger LOGGER = LoggerFactory.getLogger(ResourceTranslationContrailV2VmInterfaceImpl.class);
+  final ContrailV2VirtualMachineInterfaceHelper contrailV2VirtualMachineInterfaceHelper =
+      new ContrailV2VirtualMachineInterfaceHelper();
 
   @Override
-  protected String generateTranslatedId(TranslateTo translateTo) {
-    if (!(new ContrailV2VirtualMachineInterfaceHelper().isVlanSubInterfaceResource(translateTo
-        .getResource())) || ToggleableFeature.VLAN_TAGGING.isActive()) {
-      return super.generateTranslatedId(translateTo);
+  protected boolean isEssentialRequirementsValid(TranslateTo translateTo) {
+    if(contrailV2VirtualMachineInterfaceHelper
+        .isVlanSubInterfaceResource(translateTo.getResource())) {
+      return ToggleableFeature.VLAN_TAGGING.isActive() && contrailV2VirtualMachineInterfaceHelper
+          .isVlanSubInterfaceConnectedToPortIndirectly(translateTo);
     }
-
-    return null;
+    return true;
   }
 
   @Override
   protected void translate(TranslateTo translateTo) {
-    if (new ContrailV2VirtualMachineInterfaceHelper().isVlanSubInterfaceResource(translateTo
-        .getResource())) {
+    if (contrailV2VirtualMachineInterfaceHelper
+        .isVlanSubInterfaceResource(translateTo.getResource())) {
       translateVlanSubInterfaceResource(translateTo);
     } else {
       translateVirtualMachineInterfaceResource(translateTo);
@@ -57,8 +62,8 @@ public class ResourceTranslationContrailV2VmInterfaceImpl extends ResourceTransl
     NodeTemplate nodeTemplate = new NodeTemplate();
     nodeTemplate.setType(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE);
     nodeTemplate.setProperties(TranslatorHeatToToscaPropertyConverter
-        .getToscaPropertiesSimpleConversion(translateTo.getServiceTemplate(),translateTo.
-                getResourceId(),translateTo.getResource().getProperties(),
+        .getToscaPropertiesSimpleConversion(translateTo.getServiceTemplate(), translateTo.
+                getResourceId(), translateTo.getResource().getProperties(),
             nodeTemplate.getProperties(), translateTo.getHeatFileName(),
             translateTo.getHeatOrchestrationTemplate(), translateTo.getResource().getType(),
             nodeTemplate, translateTo.getContext()));
@@ -70,7 +75,7 @@ public class ResourceTranslationContrailV2VmInterfaceImpl extends ResourceTransl
 
     handleVmiMacAddressesInProperties(translateTo, nodeTemplate);
 
-    new ContrailV2VirtualMachineInterfaceHelper()
+    contrailV2VirtualMachineInterfaceHelper
         .connectVmiToNetwork(this, translateTo, nodeTemplate);
     DataModelUtil.addNodeTemplate(translateTo.getServiceTemplate(), translateTo.getTranslatedId(),
         nodeTemplate);
@@ -81,12 +86,13 @@ public class ResourceTranslationContrailV2VmInterfaceImpl extends ResourceTransl
     String toscaVmiMacAddressesName =
         HeatToToscaUtil.getToscaPropertyName(translateTo, HeatConstants.VMI_MAC_ADDRESSES);
     String toscaVmiMacAddressesMacAddressesName =
-        HeatToToscaUtil.getToscaPropertyName(translateTo, HeatConstants.VMI_MAC_ADDRESSES_MAC_ADDRESSES);
+        HeatToToscaUtil
+            .getToscaPropertyName(translateTo, HeatConstants.VMI_MAC_ADDRESSES_MAC_ADDRESSES);
 
-    if(nodeTemplate.getProperties().containsKey(toscaVmiMacAddressesName)){
+    if (nodeTemplate.getProperties().containsKey(toscaVmiMacAddressesName)) {
       Object macAddressesValue = nodeTemplate.getProperties().get(toscaVmiMacAddressesName);
-      if(macAddressesValue instanceof Map && ((Map<String, Object>)macAddressesValue).containsKey
-          (toscaVmiMacAddressesMacAddressesName)){
+      if (macAddressesValue instanceof Map && ((Map<String, Object>) macAddressesValue).containsKey
+          (toscaVmiMacAddressesMacAddressesName)) {
         updateMacAddressesMacAddressesInProperties(nodeTemplate, toscaVmiMacAddressesName,
             toscaVmiMacAddressesMacAddressesName,
             (Map<String, Object>) macAddressesValue);
@@ -100,9 +106,9 @@ public class ResourceTranslationContrailV2VmInterfaceImpl extends ResourceTransl
                                                           Map<String, Object> macAddressesValue) {
     Object macAddressesMacAddressesValue =
         macAddressesValue.get(toscaVmiMacAddressesMacAddressesName);
-    if(macAddressesMacAddressesValue instanceof List){
+    if (macAddressesMacAddressesValue instanceof List) {
       nodeTemplate.getProperties().put(toscaVmiMacAddressesName, macAddressesMacAddressesValue);
-    }else{
+    } else {
       nodeTemplate.getProperties().remove(toscaVmiMacAddressesName);
     }
   }
index b85fb02..a3b8009 100644 (file)
@@ -1,47 +1,55 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
 
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.openecomp.core.utilities.file.FileUtils;
 import org.openecomp.sdc.heat.datatypes.manifest.FileData;
+import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.heat.services.HeatConstants;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
 import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.NodeType;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
 import org.openecomp.sdc.tosca.services.DataModelUtil;
 import org.openecomp.sdc.tosca.services.ToscaUtil;
 import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil;
 import org.openecomp.sdc.translator.services.heattotosca.Constants;
 import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
 import org.openecomp.sdc.translator.services.heattotosca.TranslationService;
 
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
 public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
 
-  protected static Logger logger =
-      (Logger) LoggerFactory.getLogger(ResourceTranslationNestedImpl.class);
+  private static final String SUB_INTERFACE_COUNT = "count";
+  protected static Logger log = LoggerFactory.getLogger(ResourceTranslationNestedImpl.class);
 
   @Override
   public void translate(TranslateTo translateTo) {
@@ -49,13 +57,13 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
     FileData nestedFileData =
         HeatToToscaUtil.getFileData(translateTo.getResource().getType(), context);
     if (nestedFileData == null) {
-      logger.warn("Nested File '" + translateTo.getResource().getType()
+      log.warn("Nested File '" + translateTo.getResource().getType()
           + "' is not exist, therefore, the nested resource with the ID '"
           + translateTo.getResourceId() + "' will be ignored in TOSCA translation");
       return;
     }
     String templateName = FileUtils.getFileWithoutExtention(translateTo.getResource().getType());
-    String substitutionNodeTypeKey = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX + "heat."
+    String substitutionNodeTypeKey = HeatToToscaUtil.getNestedResourceTypePrefix(translateTo)
         + templateName;
 
     if (!context.getTranslatedServiceTemplates()
@@ -66,7 +74,7 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
           createSubstitutionServiceTemplate(translateTo, nestedFileData, templateName);
 
       //global substitution service template
-      ServiceTemplate globalSubstitutionServiceTemplate = new HeatToToscaUtil()
+      ServiceTemplate globalSubstitutionServiceTemplate = HeatToToscaUtil
           .fetchGlobalSubstitutionServiceTemplate(translateTo.getServiceTemplate(),
               context);
 
@@ -89,7 +97,7 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
     ServiceTemplate substitutionServiceTemplate = context.getTranslatedServiceTemplates()
         .get(translateTo.getResource().getType());
 
-    if(DataModelUtil.isNodeTemplateSectionMissingFromServiceTemplate(substitutionServiceTemplate)){
+    if (DataModelUtil.isNodeTemplateSectionMissingFromServiceTemplate(substitutionServiceTemplate)) {
       handleSubstitutionServiceTemplateWithoutNodeTemplates(
           templateName, translateTo);
       return;
@@ -104,6 +112,57 @@ public class ResourceTranslationNestedImpl extends ResourceTranslationBase {
 
     //Add nested node template id to consolidation data
     ConsolidationDataUtil.updateNestedNodeTemplateId(translateTo);
+
+    //Gather consolidation data if the resource group represents a sub interface
+    if (StringUtils.isNotBlank(substitutionNodeTypeKey)
+          && substitutionNodeTypeKey.contains(ToscaNodeType
+        .VLAN_SUB_INTERFACE_RESOURCE_TYPE_PREFIX)) {
+      populateSubInterfaceTemplateConsolidationData(translateTo, substitutionNodeTemplate);
+    }
+  }
+
+  private void populateSubInterfaceTemplateConsolidationData(TranslateTo translateTo,
+                                                            NodeTemplate nodeTemplate) {
+
+    Optional<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationData =
+        ConsolidationDataUtil.getSubInterfaceTemplateConsolidationData(translateTo, translateTo
+                .getTranslatedId());
+    if (!subInterfaceTemplateConsolidationData.isPresent()) {
+      return;
+    }
+    Optional<String> subInterfaceNetworkRole =
+        HeatToToscaUtil.getNetworkRoleFromResource(translateTo.getResource(), translateTo.getContext());
+    subInterfaceNetworkRole.ifPresent(subInterfaceTemplateConsolidationData.get()::setNetworkRole);
+    Object count = getSubInterfaceCountFromResourceProperties(translateTo);
+    subInterfaceTemplateConsolidationData.get().setResourceGroupCount(count);
+
+    if (CollectionUtils.isNotEmpty(nodeTemplate.getRequirements())) {
+      //Add connectivity to network in consolidation data based on resource group link requirements
+      nodeTemplate.getRequirements().forEach((Map<String, RequirementAssignment> requirementMap) ->
+          requirementMap.entrySet().stream()
+              .filter(requirementAssignmentEntry -> ToscaCapabilityType.NATIVE_NETWORK_LINKABLE
+                  .equals(requirementAssignmentEntry.getValue().getCapability()))
+              .forEach(requirementAssignmentEntry -> subInterfaceTemplateConsolidationData.get()
+                  .addNodesConnectedOut(requirementAssignmentEntry.getValue().getNode(),
+                      requirementAssignmentEntry.getKey(),
+                      requirementAssignmentEntry.getValue())
+              )
+      );
+    }
+  }
+
+  private Object getSubInterfaceCountFromResourceProperties(TranslateTo translateTo) {
+    if (Objects.nonNull(translateTo.getHeatOrchestrationTemplate().getResources().get(translateTo
+        .getResourceId()))) {
+      Resource resource = translateTo.getHeatOrchestrationTemplate().getResources().get(translateTo
+          .getResourceId());
+      if(HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource().equals(resource.getType())) {
+        return resource.getProperties().get(SUB_INTERFACE_COUNT);
+      } else if (HeatToToscaUtil.isYamlFile(resource.getType())) {
+        return HeatConstants.DEFAULT_NESTED_HEAT_RESOURCE_COUNT;
+      }
+    }
+    return null;
   }
 
   private void handleSubstitutionServiceTemplateWithoutNodeTemplates(String templateName,
index 06ba26c..2eb1040 100644 (file)
@@ -1,21 +1,17 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
@@ -415,8 +411,8 @@ public class ResourceTranslationNovaServerImpl extends ResourceTranslationBase {
         DataModelUtil.addBindingReqFromPortToCompute(novaServerResourceId, portNodeTemplate);
 
         // Add ports
-        ConsolidationDataUtil.updatePortInConsolidationData(translateTo, novaNodeTemplate.getType(),
-            translatedPortId.get());
+        ConsolidationDataUtil.updatePortInConsolidationData(translateTo, novaNodeTemplate.getType(), resourceId,
+            portResource.getType(), translatedPortId.get());
       } else {
         logger.warn("NovaServer connect to port resource with id : " + resourceId + " and type : "
             + portResource.getType()
index 6afaf79..68e3062 100644 (file)
@@ -1,25 +1,24 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
 
+import static org.openecomp.sdc.heat.services.HeatConstants.RESOURCE_DEF_TYPE_PROPERTY_NAME;
+import static org.openecomp.sdc.heat.services.HeatConstants.RESOURCE_GROUP_INDEX_VAR_DEFAULT_VALUE;
+
 import org.openecomp.sdc.common.errors.CoreException;
 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
@@ -28,6 +27,7 @@ import org.openecomp.sdc.tosca.datatypes.ToscaFunctions;
 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
 import org.openecomp.sdc.tosca.services.DataModelUtil;
 import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
 import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslateTo;
 import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
 import org.openecomp.sdc.translator.services.heattotosca.ResourceTranslationFactory;
@@ -49,7 +49,7 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
     Object resourceDef =
         translateTo.getResource().getProperties().get(HeatConstants.RESOURCE_DEF_PROPERTY_NAME);
     Resource nestedResource = new Resource();
-    Object typeDefinition = ((Map) resourceDef).get("type");
+    Object typeDefinition = ((Map) resourceDef).get(RESOURCE_DEF_TYPE_PROPERTY_NAME);
     if (!(typeDefinition instanceof String)) {
       logger.warn("Resource '" + translateTo.getResourceId() + "' of type'"
           + HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource()
@@ -75,10 +75,12 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
             .translateResource(heatFileName, translateTo.getServiceTemplate(),
                 translateTo.getHeatOrchestrationTemplate(), nestedResource,
                 translateTo.getResourceId(), translateTo.getContext());
+
     if (substitutionNodeTemplateId.isPresent()) {
       NodeTemplate substitutionNodeTemplate =
-          DataModelUtil.getNodeTemplate(translateTo.getServiceTemplate(), substitutionNodeTemplateId.get());
-      if(!Objects.isNull(substitutionNodeTemplate)) {
+          DataModelUtil.getNodeTemplate(translateTo.getServiceTemplate(),
+              substitutionNodeTemplateId.get());
+      if (!Objects.isNull(substitutionNodeTemplate)) {
         Map serviceTemplateFilter = (Map<String, Object>) substitutionNodeTemplate.getProperties()
             .get(ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
 
@@ -93,8 +95,13 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
   }
 
   private void handlingIndexVar(TranslateTo translateTo, NodeTemplate substitutionNodeTemplate) {
+    List<String> indexVarProperties = new ArrayList<>();
     String indexVarValue = getIndexVarValue(translateTo);
-    replacePropertiesIndexVarValue(indexVarValue, substitutionNodeTemplate.getProperties());
+    replacePropertiesIndexVarValue(indexVarValue, substitutionNodeTemplate.getProperties(),
+        indexVarProperties, translateTo);
+    //Add index var properties to context for unified model later
+    translateTo.getContext().addIndexVarProperties(ToscaUtil.getServiceTemplateFileName(translateTo
+            .getServiceTemplate()), translateTo.getTranslatedId(), indexVarProperties);
   }
 
   private Map<String, List> getNewIndexVarValue() {
@@ -108,21 +115,29 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
   }
 
   private void replacePropertiesIndexVarValue(String indexVarValue,
-                                              Map<String, Object> properties) {
+                                              Map<String, Object> properties,
+                                              List<String> indexVarProperties,
+                                              TranslateTo translateTo) {
     if (properties == null || properties.isEmpty()) {
       return;
     }
 
     for (Map.Entry<String, Object> propertyEntry : properties.entrySet()) {
       Object propertyValue = propertyEntry.getValue();
-      Object newPropertyValue = getUpdatedPropertyValueWithIndex(indexVarValue, propertyValue);
+      if (propertyValue != null && propertyValue.equals(RESOURCE_GROUP_INDEX_VAR_DEFAULT_VALUE)) {
+        indexVarProperties.add(propertyEntry.getKey());
+      }
+      Object newPropertyValue = getUpdatedPropertyValueWithIndex(indexVarValue, propertyValue,
+          indexVarProperties, translateTo);
       if (newPropertyValue != null) {
         properties.put(propertyEntry.getKey(), newPropertyValue);
       }
     }
   }
 
-  private Object getUpdatedPropertyValueWithIndex(String indexVarValue, Object propertyValue) {
+  private Object getUpdatedPropertyValueWithIndex(String indexVarValue, Object propertyValue,
+                                                  List<String> indexVarProperties,
+                                                  TranslateTo translateTo) {
     if (propertyValue != null && propertyValue instanceof String) {
       if (propertyValue.equals(indexVarValue)) {
         return getNewIndexVarValue();
@@ -151,12 +166,14 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
       }
       return propertyValue; //no update is needed
     } else if (propertyValue instanceof Map && !((Map) propertyValue).isEmpty()) {
-      replacePropertiesIndexVarValue(indexVarValue, (Map<String, Object>) propertyValue);
+      replacePropertiesIndexVarValue(indexVarValue, (Map<String, Object>) propertyValue,
+          indexVarProperties, translateTo);
       return propertyValue;
     } else if (propertyValue instanceof List && !((List) propertyValue).isEmpty()) {
       List newPropertyValueList = new ArrayList<>();
-      for (Object entry : ((List) propertyValue)) {
-        newPropertyValueList.add(getUpdatedPropertyValueWithIndex(indexVarValue, entry));
+      for (Object entry : (List) propertyValue) {
+        newPropertyValueList.add(getUpdatedPropertyValueWithIndex(indexVarValue, entry,
+            indexVarProperties, translateTo));
       }
       return newPropertyValueList;
     }
@@ -183,7 +200,7 @@ public class ResourceTranslationResourceGroupImpl extends ResourceTranslationBas
                                                        Map serviceTemplateFilter) {
     boolean mandatory = false;
     Object countValue = TranslatorHeatToToscaPropertyConverter
-        .getToscaPropertyValue(translateTo.getServiceTemplate(),translateTo.getResourceId(),
+        .getToscaPropertyValue(translateTo.getServiceTemplate(), translateTo.getResourceId(),
             ToscaConstants.COUNT_PROPERTY_NAME, translateTo.getResource().getProperties().get
                 (ToscaConstants.COUNT_PROPERTY_NAME), null,
             translateTo.getHeatFileName(), translateTo.getHeatOrchestrationTemplate(),
index 1f7167c..7a07d78 100644 (file)
@@ -30,7 +30,9 @@ import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition;
 import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
 import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
 import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
 import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
 import org.openecomp.sdc.tosca.services.ToscaExtensionYamlUtil;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
@@ -46,6 +48,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -691,5 +694,15 @@ public class TestUtils {
     return Optional.empty();
   }
 
+  public static ServiceTemplate createInitServiceTemplate() {
+    ServiceTemplate initServiceTemplate = new ServiceTemplate();
+    Map<String, String> templateMetadata = new HashMap<>();
+    templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, "Test");
+    initServiceTemplate.setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION);
+    initServiceTemplate.setMetadata(templateMetadata);
+    initServiceTemplate.setTopology_template(new TopologyTemplate());
+    initServiceTemplate.setImports(GlobalTypesGenerator.getGlobalTypesImportList());
+    return initServiceTemplate;
+  }
 
 }
index 63ce6b5..9a36499 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.services.heattotosca;
 
 import static org.mockito.Matchers.any;
index 7de9ae5..646aa47 100644 (file)
@@ -1,5 +1,25 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.services.heattotosca;
 
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.junit.Before;
@@ -40,10 +60,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Matchers.anyString;
-
 public class UnifiedCompositionServiceTest {
   private static final String BASE_DIRECTORY = "/mock/services/heattotosca/unifiedComposition/";
   @InjectMocks
@@ -879,11 +895,11 @@ public class UnifiedCompositionServiceTest {
     context.setConsolidationData(
         createConsolidationData(Collections.singletonList(FSB1_template), portTypeToIdList));
     context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_template,
-        UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
+        UnifiedCompositionEntity.COMPUTE, cleanedComputeNodeTemplate);
     context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL1,
-        UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+        UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
     context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL2,
-        UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+        UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
 
     setUnifiedCompositionData(Arrays.asList(FSB1_template, FSB1_INTERNAL1, FSB1_INTERNAL2));
 
@@ -910,13 +926,13 @@ public class UnifiedCompositionServiceTest {
         createConsolidationData(Arrays.asList("FSB1_template_1", "FSB1_template_2"),
             portTypeToIdList));
     context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, "FSB1_template_1",
-        UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
+        UnifiedCompositionEntity.COMPUTE, cleanedComputeNodeTemplate);
     context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, "FSB1_template_2",
-        UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
+        UnifiedCompositionEntity.COMPUTE, cleanedComputeNodeTemplate);
     context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB1_INTERNAL1,
-        UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+        UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
     context.addCleanedNodeTemplate(MAIN_SERVICE_TEMPLATE_YAML, FSB2_INTERNAL1,
-        UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+        UnifiedCompositionEntity.PORT, cleanedComputeNodeTemplate);
 
     setUnifiedCompositionData(
         Arrays.asList("FSB1_template_1", "FSB1_template_2", FSB1_INTERNAL1, FSB2_INTERNAL1));
index bb1f898..9353de7 100644 (file)
@@ -1,5 +1,35 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata;
 
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.MAIN_SERVICE_TEMPLATE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_MULTIPLE_COMPUTE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_OUT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NO_DEPENDENCY;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_MULTIPLE_MULTI_LEVEL_NESTED_RESOURCE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_MULTIPLE_NESTED_RESOURCE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_CONNECTION;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_SHARED_PORT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_NESTED_CONNECTION;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SINGLE_NESTED_RESOURCE;
+
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.collections4.CollectionUtils;
 import org.junit.Assert;
@@ -37,20 +67,6 @@ import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.MAIN_SERVICE_TEMPLATE;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_MULTIPLE_COMPUTE;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_OUT;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NO_DEPENDENCY;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_MULTIPLE_MULTI_LEVEL_NESTED_RESOURCE;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_MULTIPLE_NESTED_RESOURCE;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_CONNECTION;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_SHARED_PORT;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_NESTED_CONNECTION;
-import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SINGLE_NESTED_RESOURCE;
-
 public class ConsolidationDataTestUtil {
 
   public static void validateVolumeInConsolidationData(String computeNodeTemplateId,
@@ -617,7 +633,7 @@ public class ConsolidationDataTestUtil {
     Assert.assertNotNull(consolidationData);
     if(TestConstants.TEST_GET_ATTR_FOR_MORE_THAN_ONE_ATTR_IN_ATTR_LIST.equals(testName)){
       PortTemplateConsolidationData portTemplateConsolidationData = consolidationData
-          .getPortConsolidationData().getFilePortConsolidationData("MainServiceTemplate.yaml")
+          .getPortConsolidationData().getFilePortConsolidationData("ep-jsa_netServiceTemplate.yaml")
           .getPortTemplateConsolidationData("VMI1");
       Assert.assertNotNull(portTemplateConsolidationData);
       Assert.assertEquals(2, portTemplateConsolidationData.getNodesGetAttrIn().size());
@@ -635,7 +651,7 @@ public class ConsolidationDataTestUtil {
 
       ComputeTemplateConsolidationData computeTemplateConsolidationDataFSB2 = consolidationData
           .getComputeConsolidationData()
-          .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+          .getFileComputeConsolidationData("ep-jsa_netServiceTemplate.yaml")
           .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.FSB2")
           .getComputeTemplateConsolidationData("FSB2");
       Assert.assertEquals(1,computeTemplateConsolidationDataFSB2.getNodesGetAttrOut().size());
@@ -647,7 +663,7 @@ public class ConsolidationDataTestUtil {
           .get(0).getAttributeName());
       ComputeTemplateConsolidationData computeTemplateConsolidationDataFSB1 = consolidationData
           .getComputeConsolidationData()
-          .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+          .getFileComputeConsolidationData("ep-jsa_netServiceTemplate.yaml")
           .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.FSB1")
           .getComputeTemplateConsolidationData("FSB1");
       Assert.assertEquals(1,computeTemplateConsolidationDataFSB1.getNodesGetAttrOut().size());
@@ -682,7 +698,7 @@ public class ConsolidationDataTestUtil {
       Assert.assertNotNull(portTemplateConsolidationData);
       Assert.assertEquals("name",portTemplateConsolidationData.getNodesGetAttrIn().get("FSB1").
           get(0).getFieldName());
-      Assert.assertEquals("fq_name",portTemplateConsolidationData.getNodesGetAttrIn().get("FSB1").
+      Assert.assertEquals("tenant_id",portTemplateConsolidationData.getNodesGetAttrIn().get("FSB1").
           get(0).getAttributeName());
     } else if(TestConstants.TEST_GET_ATTR_FOR_NONE_TO_PORT_OR_COMPUTE.equals(testName)){
       ComputeTemplateConsolidationData computeTemplateConsolidationData = consolidationData
@@ -697,7 +713,7 @@ public class ConsolidationDataTestUtil {
     } else if(TestConstants.TEST_OUTPUT_GET_ATTR.equals(testName)){
       ComputeTemplateConsolidationData computeTemplateConsolidationData1 = consolidationData
           .getComputeConsolidationData()
-          .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+          .getFileComputeConsolidationData("firstnet_fgi_frwlServiceTemplate.yaml")
           .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.cgi_fw")
           .getComputeTemplateConsolidationData("CGI_FW_SERVER_1");
       Assert.assertEquals("cgi_fw_01_left_mac_1",computeTemplateConsolidationData1
@@ -707,7 +723,7 @@ public class ConsolidationDataTestUtil {
           .get(0).getAttributeName());
       ComputeTemplateConsolidationData computeTemplateConsolidationData2 = consolidationData
           .getComputeConsolidationData()
-          .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+          .getFileComputeConsolidationData("firstnet_fgi_frwlServiceTemplate.yaml")
           .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.cgi_fw")
           .getComputeTemplateConsolidationData("CGI_FW_SERVER_2");
       Assert.assertEquals(1,computeTemplateConsolidationData2
@@ -755,7 +771,7 @@ public class ConsolidationDataTestUtil {
       Assert.assertEquals("addresses",computeTemplateConsolidationData2
           .getOutputParametersGetAttrIn().get(7).getAttributeName());
       PortTemplateConsolidationData portTemplateConsolidationData = consolidationData
-          .getPortConsolidationData().getFilePortConsolidationData("MainServiceTemplate.yaml")
+          .getPortConsolidationData().getFilePortConsolidationData("firstnet_fgi_frwlServiceTemplate.yaml")
           .getPortTemplateConsolidationData("contrail_vmi_subinterface");
       Assert.assertEquals("cgi_fw_01_left_mac_7",portTemplateConsolidationData
           .getOutputParametersGetAttrIn().get(0).getFieldName());
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java
new file mode 100644 (file)
index 0000000..558ebf4
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+import java.io.IOException;
+
+public class UnifiedCompositionSubInterfaceFullTest extends BaseFullTranslationTest {
+
+  private static final String PATTERN_1A_BASE_DIRECTORY =
+      "/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/";
+  private static final String PATTERN_1C1_BASE_DIRECTORY =
+      "/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/";
+
+  @Test
+  public void testSubInterfaceComputePortNetwork() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with only port
+     * connected to network
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "computePortNetworkSubInterface");
+  }
+
+  @Test
+  public void testSubInterfaceNodesConnectedOut() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. Port connected to network
+     * 2. Sub-interface connected to same network
+     * 3. Sub-interface has depends on (out) connectivity with network resource
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "subInterfaceNodesConnectedOut");
+  }
+
+  @Test
+  public void testSubInterfaceNodesConnectedIn() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. Port connected to network
+     * 2. Sub-interface connected to different network
+     * 3. Sub-interface has depends on (in) connectivity from network resource
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "subInterfaceNodesConnectedIn");
+  }
+
+  @Test
+  public void testSubInterfaceGetAttrInOut() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. Port connected to network
+     * 2. Sub-interface connected to different network
+     * 3. Sub-interface has get attribute (in) connectivity from network resource
+     * 4. Sub-interface has get attribute (out) connectivity to second network resource
+     * 5. Sub-interface has get attribute (in) connectivity from output param
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "subInterfaceGetAttrInOut");
+  }
+
+  @Test
+  public void testSubInterfaceMultipleVlanSameNestedFile() throws IOException {
+    /**
+     * Heat file with one compute, one port and two subinterface resource groups with
+     * 1. Port connected to network
+     * 2. Sub-interfaces with same nested files
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "multipleVlanSameType");
+  }
+
+  @Test
+  public void testSubInterfaceMultipleVlanDiffNestedFile() throws IOException {
+    /**
+     * Heat file with one compute, one port and two subinterface resource groups with
+     * 1. Port connected to network
+     * 2. Sub-interfaces with different nested files
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "multipleVlanDiffType");
+  }
+
+  @Test
+  public void testSubInterfaceMultiplePortsMultipleVlans() throws IOException {
+    /**
+     * Heat file with one compute, two ports and two subinterface resource groups with
+     * 1. Port connected to network
+     * 2. Sub-interfaces each with different nested files
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "multiplePortsMultipleVlans");
+  }
+
+  @Test
+  public void testSubInterfaceRegularNested() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource represented through a
+     * regular nested resource and not using a resource group
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "regularNestedSubInterface");
+  }
+
+  @Test
+  public void testSubInterfaceNotBoundToPort() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. Resource group missing virtual_machine_interface_refs property
+     * 2. Resource group missing virtual_machine_interface_properties_sub_interface_vlan_tag
+     *    property
+     * 3. Resource group parent port as get_param
+     */
+    testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "notBoundToParentPort");
+  }
+
+  //****************** PATTERN 1C1 Tests ***************************
+
+  @Test
+  public void testSubInterfaceScalingOnePortVlanSameType() throws IOException {
+    /**
+     * Heat file with two computes of same type, two ports of same type and two subinterface resource groups of same
+     * type with
+     * 1. Compute has one port each
+     * 2. Port has one sub-interface each
+     * 3. Port connected to network
+     * 3. Sub-interface not connected to network
+     */
+    testTranslationWithInit(PATTERN_1C1_BASE_DIRECTORY + "onePortVlanSameType");
+  }
+
+  @Test
+  public void testSubInterfaceScalingMultiplePortsMultipleVlans() throws IOException {
+    /**
+     * Heat file with two computes of different type, four ports of two types each and four subinterface resource groups
+     * of two types each
+     * 1. Each compute has two ports, one of each type
+     * 2. Port has one sub-interface each
+     * 3. Ports connected to different networks
+     * 4. Sub-interface of one type connected to network
+     */
+    testTranslationWithInit(PATTERN_1C1_BASE_DIRECTORY + "multiplePortsMultipleVlans");
+  }
+
+  @Test
+  public void testSubInterfaceScalingOptionalPropertiesConsolidation() throws IOException {
+    /**
+     * Heat file with two computes of same type, four ports of two types each and two subinterface resource groups
+     * of same type
+     * 1. Each compute has two ports, one of each type
+     * 2. One of the ports has a subinterface
+     * 3. Ports connected to network
+     * 4. Subinterfaces not connected to network
+     * 5. Optional properties contained in one subinterface and not in other
+     */
+    testTranslationWithInit(PATTERN_1C1_BASE_DIRECTORY + "optionalPropertiesConsolidation");
+  }
+
+  @Test
+  public void testSubInterfaceScalingRegularNestedSubInterface() throws IOException {
+    /**
+     * Heat file with two computes, two ports of same type connected to network and two subinterface resource
+     * represented through a regular nested resource and not using a resource group not connected to network
+     */
+    testTranslationWithInit(PATTERN_1C1_BASE_DIRECTORY + "regularNestedSubInterface");
+  }
+
+  @Test
+  public void testSubInterfaceScalingAllConnectivities() throws IOException {
+    /**
+     * Heat file with two computes of same type, four ports of two types each and two subinterface resource groups
+     * of same type
+     * 1. Each compute has two ports, one of each type
+     * 2. One of the ports has a subinterface
+     * 3. Port connected to network
+     * 4. Both ports and subinterfaces connected to network
+     * 5. All connectivities including dependency, get attribute from nodes and output param
+     */
+    testTranslationWithInit(PATTERN_1C1_BASE_DIRECTORY + "allConnectivities");
+  }
+}
index 5d73a30..f0c4517 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
 
-import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
-import org.openecomp.sdc.common.togglz.ToggleableFeature;
-import org.togglz.testing.TestFeatureManager;
-import org.togglz.testing.TestFeatureManagerProvider;
+import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.heat.services.HeatConstants;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FilePortConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
 
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 public class ContrailV2VlanToInterfaceResourceConnectionTest extends BaseResourceTranslationTest {
 
+  private static final String PORT_NODE_TEMPLATE_ID_FOR_ATTR_TEST = "vdbe_untr_1_port";
+  private static final int ONE = 1;
+  private static final int TWO = 2;
+  private static final String NETWORK_ROLE_INOUT_ATTR_TEST = "untr";
+  private static final String NESTED_FILE_NAME_INOUT_ATTR_TEST = "nested.yml";
+  private static final String INPUT_FILE_PATH_FOR_INOUT_ATTR_TEST =
+      "/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles";
+  private static final String INPUT_FILE_PATH_FOR_PORT_NETWORK_ROLE =
+      "/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles";
+  private static final String MAIN_SERVICE_TEMPLATE_YAML = "MainServiceTemplate.yaml";
+
+
   @Override
   @Before
   public void setUp() throws IOException {
@@ -44,6 +64,84 @@ public class ContrailV2VlanToInterfaceResourceConnectionTest extends BaseResourc
     testTranslation();
   }
 
+  @Test
+  public void testTranslateVlanToInterfaceNestedInOutAttr() throws Exception {
+    inputFilesPath = INPUT_FILE_PATH_FOR_INOUT_ATTR_TEST;
+    outputFilesPath =
+        "/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr" +
+            "/expectedoutputfiles";
+    initTranslatorAndTranslate();
+    testTranslation();
+
+    Assert.assertNotNull(this.translationContext.getConsolidationData().getPortConsolidationData()
+        .getFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML)
+        .getPortTemplateConsolidationData(PORT_NODE_TEMPLATE_ID_FOR_ATTR_TEST));
+
+    List<SubInterfaceTemplateConsolidationData> subInfList =
+    this.translationContext.getConsolidationData().getPortConsolidationData()
+        .getFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML)
+        .getPortTemplateConsolidationData(PORT_NODE_TEMPLATE_ID_FOR_ATTR_TEST)
+        .getSubInterfaceConsolidationData("org.openecomp.resource.abstract.nodes.heat.subinterface.nested");
+
+    Assert.assertEquals(ONE, subInfList.size());
+    SubInterfaceTemplateConsolidationData data = subInfList.get(0);
+
+    Assert.assertEquals(NETWORK_ROLE_INOUT_ATTR_TEST, data.getNetworkRole());
+    Assert.assertEquals(ONE, data.getNodesConnectedIn().size());
+    Assert.assertEquals(ONE, data.getNodesConnectedOut().size());
+    Assert.assertEquals(TWO, data.getNodesConnectedOut().get("control_int_net").size());
+    Assert.assertEquals(ONE, data.getNodesGetAttrIn().size());
+    Assert.assertEquals(ONE, data.getNodesGetAttrOut().size());
+    Assert.assertEquals(ONE, data.getOutputParametersGetAttrIn().size());
+
+  }
+
+  @Test
+  public void testGetNetworkRoleFromResourceUtil() throws Exception {
+    inputFilesPath = INPUT_FILE_PATH_FOR_INOUT_ATTR_TEST;
+    initTranslatorAndTranslate();
+    Resource targetResource = new Resource();
+    targetResource.setType(NESTED_FILE_NAME_INOUT_ATTR_TEST);
+
+    Optional<String> networkRole = HeatToToscaUtil.getNetworkRoleFromResource(targetResource, this
+        .translationContext);
+
+    Assert.assertEquals(NETWORK_ROLE_INOUT_ATTR_TEST,networkRole.get());
+  }
+
+  @Test
+  public void testGetNetworkRoleFromResourceUtil_Port() throws Exception {
+    inputFilesPath = INPUT_FILE_PATH_FOR_PORT_NETWORK_ROLE;
+    initTranslatorAndTranslate();
+    List<String> validNeutronPortTemplateIds = Arrays.asList("vdbe_0_oam_port_1", "vdbe_oam_port", "vdbe_oam_port_2");
+    validatePortNetworkRole(validNeutronPortTemplateIds, "oam");
+
+    List<String> validVmiPortTemplateIds = Arrays.asList("vdbe_0_untr_vmi_0", "vdbe_untr_vmi");
+    validatePortNetworkRole(validVmiPortTemplateIds, "untr");
+
+    List<String> portIdsNotFollowingHeatGuidelines = Arrays.asList("vdbe_0_oam_neutronNotFollowingHeatGuidelines_2",
+        "vdbe_0_untr_vmiNotFollowingHeatGuidelines_1");
+    validatePortNetworkRole(portIdsNotFollowingHeatGuidelines, null);
+
+  }
+
+
+  @Test
+  public void testIsSubInterfaceResourceUtil() throws Exception {
+    inputFilesPath = INPUT_FILE_PATH_FOR_INOUT_ATTR_TEST;
+    initTranslatorAndTranslate();
+    Resource targetResource = new Resource();
+    targetResource.setType(HeatResourcesTypes.RESOURCE_GROUP_RESOURCE_TYPE.getHeatResource());
+    Map<String, Object> propetyMap = new HashMap<>();
+    Map<String, Object> resourceDefPropsMap = new HashMap<>();
+    resourceDefPropsMap.put("type", NESTED_FILE_NAME_INOUT_ATTR_TEST);
+    propetyMap.put(HeatConstants.RESOURCE_DEF_PROPERTY_NAME, resourceDefPropsMap);
+    targetResource.setProperties(propetyMap);
+
+    Assert.assertTrue(HeatToToscaUtil.isSubInterfaceResource(targetResource, this
+        .translationContext));
+  }
+
   @Test
   public void testTranslateVlanToNetMultiNestedConnection() throws Exception {
     inputFilesPath =
@@ -55,4 +153,14 @@ public class ContrailV2VlanToInterfaceResourceConnectionTest extends BaseResourc
     testTranslation();
   }
 
+  private void validatePortNetworkRole(List<String> portNodeTemplateIds, String expectedNetworkRole) {
+    FilePortConsolidationData filePortConsolidationData =
+        translationContext.getConsolidationData().getPortConsolidationData()
+            .getFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML);
+    for (String portNodeTemplateId : portNodeTemplateIds) {
+      PortTemplateConsolidationData portTemplateConsolidationData =
+          filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
+      Assert.assertEquals(expectedNetworkRole, portTemplateConsolidationData.getNetworkRole());
+    }
+  }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/ComputeNewNodeTemplateIdGeneratorTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/ComputeNewNodeTemplateIdGeneratorTest.java
new file mode 100644 (file)
index 0000000..5750de5
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.unifiedmodel.commands;
+
+import static org.openecomp.sdc.translator.TestUtils.createInitServiceTemplate;
+
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl.ComputeNewNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
+public class ComputeNewNodeTemplateIdGeneratorTest extends BaseResourceTranslationTest {
+
+  private static final String SERVER_PCM = "server_pcm";
+  private UnifiedSubstitutionNodeTemplateIdGenerator unifiedSubstitutionNodeTemplateIdGenerator;
+
+  @BeforeClass
+  public void setUp(){
+    unifiedSubstitutionNodeTemplateIdGenerator = new ComputeNewNodeTemplateIdGenerator();
+  }
+
+  @Test
+  public void testGenerateNewComputeNodeTemplateId() {
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestComputeServiceTemplate(), null, null,
+        null);
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, SERVER_PCM);
+    if (nodeTemplateId.isPresent()) {
+      Assert.assertEquals(nodeTemplateId.get(), "pcm_server");
+    } else {
+      Assert.fail();
+    }
+  }
+
+  @Test
+  public void testGenerateInvalidOriginalNodeTemplateId() {
+    //node template with id is not present in the service template
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestComputeServiceTemplate(), null, null,
+        null);
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, SERVER_PCM +
+        "_invalid");
+    Assert.assertEquals(nodeTemplateId.isPresent(), false);
+  }
+
+  @Test
+  public void testGenerateNullOriginalNodeTemplateId() {
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestComputeServiceTemplate(), null, null,
+        null);
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, null);
+    Assert.assertEquals(nodeTemplateId.isPresent(), false);
+  }
+
+  private static ServiceTemplate getTestComputeServiceTemplate() {
+    ServiceTemplate serviceTemplate = createInitServiceTemplate();
+    TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
+    NodeTemplate nodeTemplate = new NodeTemplate();
+    nodeTemplate.setType("org.openecomp.resource.vfc.nodes.heat.pcm_server");
+    Map<String, NodeTemplate> nodeTemplateMap = new HashMap<>();
+    nodeTemplateMap.put(SERVER_PCM, nodeTemplate);
+    topologyTemplate.setNode_templates(nodeTemplateMap);
+    return serviceTemplate;
+  }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/PortNewNodeTemplateIdGeneratorTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/PortNewNodeTemplateIdGeneratorTest.java
new file mode 100644 (file)
index 0000000..1986eca
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.unifiedmodel.commands;
+
+import static org.openecomp.sdc.translator.TestUtils.createInitServiceTemplate;
+
+import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
+import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
+import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.TopologyTemplate;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl.PortNewNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class PortNewNodeTemplateIdGeneratorTest extends BaseResourceTranslationTest {
+
+  private static final String SERVER_PCM = "server_pcm";
+  private static final String PCM_PORT_0 = "pcm_port_0";
+  private static final String PCM_PORT_1 = "pcm_port_1";
+
+  private UnifiedSubstitutionNodeTemplateIdGenerator unifiedSubstitutionNodeTemplateIdGenerator;
+
+  @BeforeClass
+  public void setUp(){
+    unifiedSubstitutionNodeTemplateIdGenerator = new PortNewNodeTemplateIdGenerator();
+  }
+
+  @Test
+  public void testGenerateNewPortNodeTemplateId() {
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestPortServiceTemplate(), null,
+        getUnifiedCompositionDataListWithOnePort(), null);
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, PCM_PORT_0);
+    if (nodeTemplateId.isPresent()) {
+      Assert.assertEquals(nodeTemplateId.get(), "pcm_server_pcm_port");
+    } else {
+      Assert.fail();
+    }
+  }
+
+  @Test
+  public void testGeneratePortIdNotBoundToServer() {
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestInitPortServiceTemplate(), null,
+        getInitUnifiedCompositionDataList(), null);
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, PCM_PORT_0);
+    Assert.assertEquals(false, nodeTemplateId.isPresent());
+  }
+
+  @Test
+  public void testGeneratePortIdMultiplePortsSameTypeToOneServer() {
+    UnifiedCompositionTo unifiedCompositionTo =
+        new UnifiedCompositionTo(getTestPortServiceTemplateWithTwoPortsOfSameType(), null,
+            getUnifiedCompositionDataListWithTwoPortsOfSameType(), null);
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, PCM_PORT_0);
+    if (nodeTemplateId.isPresent()) {
+      Assert.assertEquals(nodeTemplateId.get(), "pcm_server_pcm_port_0");
+    } else {
+      Assert.fail();
+    }
+
+    nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, PCM_PORT_1);
+    if (nodeTemplateId.isPresent()) {
+      Assert.assertEquals(nodeTemplateId.get(), "pcm_server_pcm_port_1");
+    } else {
+      Assert.fail();
+    }
+}
+
+  @Test
+  public void testGenerateInvalidOriginalNodeTemplateId() {
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestPortServiceTemplate(), null,
+        getUnifiedCompositionDataListWithOnePort(), null);
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo,
+        PCM_PORT_0 + "_Invalid");
+    Assert.assertEquals(nodeTemplateId.isPresent(), false);
+  }
+
+  private static ServiceTemplate getTestInitPortServiceTemplate() {
+    ServiceTemplate serviceTemplate = createInitServiceTemplate();
+    TopologyTemplate topologyTemplate = serviceTemplate.getTopology_template();
+    NodeTemplate nodeTemplate = new NodeTemplate();
+    nodeTemplate.setType("org.openecomp.resource.vfc.nodes.heat.pcm_server");
+    Map<String, NodeTemplate> nodeTemplateMap = new HashMap<>();
+    nodeTemplateMap.put(SERVER_PCM, nodeTemplate);
+    NodeTemplate portNodeTemplate = new NodeTemplate();
+    portNodeTemplate.setType(ToscaNodeType.NEUTRON_PORT);
+    nodeTemplateMap.put(PCM_PORT_0, portNodeTemplate);
+    topologyTemplate.setNode_templates(nodeTemplateMap);
+    return serviceTemplate;
+  }
+
+  private static ServiceTemplate getTestPortServiceTemplate() {
+    ServiceTemplate serviceTemplate = getTestInitPortServiceTemplate();
+    NodeTemplate portNodeTemplate = serviceTemplate.getTopology_template().getNode_templates().get(PCM_PORT_0);
+    Map<String, RequirementAssignment> portBindingToServer = new HashMap<>();
+    RequirementAssignment binding = new RequirementAssignment();
+    binding.setRelationship(ToscaRelationshipType.NATIVE_NETWORK_BINDS_TO);
+    binding.setCapability(ToscaCapabilityType.NATIVE_NETWORK_BINDABLE);
+    binding.setNode(SERVER_PCM);
+    portBindingToServer.put(ToscaConstants.BINDING_REQUIREMENT_ID, binding);
+    List<Map<String, RequirementAssignment>> requirements = new ArrayList<>(1);
+    requirements.add(portBindingToServer);
+    portNodeTemplate.setRequirements(requirements);
+    return serviceTemplate;
+  }
+
+  private static ServiceTemplate getTestPortServiceTemplateWithTwoPortsOfSameType() {
+    ServiceTemplate serviceTemplate = getTestInitPortServiceTemplate();
+    Map<String, NodeTemplate> nodeTemplateMap = serviceTemplate.getTopology_template().getNode_templates();
+    NodeTemplate anotherPortNodeTemplate = new NodeTemplate();
+    anotherPortNodeTemplate.setType(ToscaNodeType.NEUTRON_PORT);
+    nodeTemplateMap.put(PCM_PORT_1, anotherPortNodeTemplate);
+
+    NodeTemplate portNodeTemplate = serviceTemplate.getTopology_template().getNode_templates().get(PCM_PORT_0);
+    addBindingToServer(portNodeTemplate);
+    addBindingToServer(anotherPortNodeTemplate);
+    return serviceTemplate;
+  }
+
+  private List<UnifiedCompositionData> getInitUnifiedCompositionDataList() {
+    List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>(1);
+    UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+    ComputeTemplateConsolidationData computeTemplateConsolidationData = new ComputeTemplateConsolidationData();
+    computeTemplateConsolidationData.setNodeTemplateId(SERVER_PCM);
+    unifiedCompositionData.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
+    unifiedCompositionDataList.add(unifiedCompositionData);
+    return unifiedCompositionDataList;
+  }
+
+  private List<UnifiedCompositionData> getUnifiedCompositionDataListWithOnePort() {
+    List<UnifiedCompositionData> unifiedCompositionDataList = getInitUnifiedCompositionDataList();
+    ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionDataList.get(0)
+        .getComputeTemplateConsolidationData();
+    List<String> ports = new ArrayList<>(1);
+    ports.add(PCM_PORT_0);
+    Map<String, List<String>> portMap = new HashMap<>();
+    portMap.put("pcm_port", ports);
+    computeTemplateConsolidationData.setPorts(portMap);
+    return unifiedCompositionDataList;
+  }
+
+  private List<UnifiedCompositionData> getUnifiedCompositionDataListWithTwoPortsOfSameType() {
+    List<UnifiedCompositionData> unifiedCompositionDataList = getUnifiedCompositionDataListWithOnePort();
+    ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionDataList.get(0)
+        .getComputeTemplateConsolidationData();
+    List<String> ports = new ArrayList<>(2);
+    ports.add(PCM_PORT_0);
+    ports.add(PCM_PORT_1);
+    Map<String, List<String>> portMap = new HashMap<>();
+    portMap.put("pcm_port", ports);
+    computeTemplateConsolidationData.setPorts(portMap);
+    return unifiedCompositionDataList;
+  }
+
+  private static void addBindingToServer(NodeTemplate portNodeTemplate) {
+    Map<String, RequirementAssignment> portBindingToServer = new HashMap<>();
+    RequirementAssignment binding = new RequirementAssignment();
+    binding.setRelationship(ToscaRelationshipType.NATIVE_NETWORK_BINDS_TO);
+    binding.setCapability(ToscaCapabilityType.NATIVE_NETWORK_BINDABLE);
+    binding.setNode(SERVER_PCM);
+    portBindingToServer.put(ToscaConstants.BINDING_REQUIREMENT_ID, binding);
+    List<Map<String, RequirementAssignment>> requirements = new ArrayList<>(1);
+    requirements.add(portBindingToServer);
+    portNodeTemplate.setRequirements(requirements);
+  }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java
new file mode 100644 (file)
index 0000000..11b20fa
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.unifiedmodel.commands;
+
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.translator.TestUtils;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl.SubInterfaceNewNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FilePortConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class SubInterfaceNewNodeTemplateIdGeneratorTest extends BaseResourceTranslationTest {
+
+  private static final String VDBE_UNTR_1_PORT = "vdbe_untr_1_port";
+  private static final String VDBE_UNTR_1_SUBPORTS = "vdbe_untr_1_subports";
+  private static final String MAIN_SERVICE_TEMPLATE_YAML = "MainServiceTemplate.yaml";
+  private static final String VDBE_UNTR_2_SUBPORTS = "vdbe_untr_2_subports";
+  private static final String SUBINTERFACE_TYPE_NESTED =
+      "org.openecomp.resource.abstract.nodes.heat.subinterface.nested";
+
+  private UnifiedSubstitutionNodeTemplateIdGenerator unifiedSubstitutionNodeTemplateIdGenerator;
+
+  @BeforeClass
+  public void setUp(){
+    unifiedSubstitutionNodeTemplateIdGenerator = new SubInterfaceNewNodeTemplateIdGenerator();
+  }
+
+  @Test
+  public void testGenerateNewSubInterfaceNodeTemplateId() throws IOException {
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestInitSubInterfaceServiceTemplate(), null,
+        getUnifiedCompositionDataListWithOnePortAndSubInterface(), getContext(false));
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, VDBE_UNTR_1_SUBPORTS);
+    if (nodeTemplateId.isPresent()) {
+      Assert.assertEquals(nodeTemplateId.get(), "vdbe_vdbe_untr_1_port_nested");
+    } else {
+      Assert.fail();
+    }
+  }
+
+  @Test
+  public void testGeneratePortIdMultipleSubInterfacesOfSameTypeToOnePort() throws IOException {
+    UnifiedCompositionTo unifiedCompositionTo =
+        new UnifiedCompositionTo(getTestSubInterfaceServiceTemplateMultipleVlan(), null,
+            getUnifiedCompositionDataListWithTwoSubInterfacesOfSameType(), getContext(true));
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, VDBE_UNTR_1_SUBPORTS);
+    if (nodeTemplateId.isPresent()) {
+      Assert.assertEquals(nodeTemplateId.get(), "vdbe_vdbe_untr_1_port_vdbe_untr_1_subports");
+    } else {
+      Assert.fail();
+    }
+
+    nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, VDBE_UNTR_2_SUBPORTS);
+    if (nodeTemplateId.isPresent()) {
+      Assert.assertEquals(nodeTemplateId.get(), "vdbe_vdbe_untr_1_port_vdbe_untr_2_subports");
+    } else {
+      Assert.fail();
+    }
+  }
+
+  @Test
+  public void testGenerateInvalidOriginalNodeTemplateId() throws IOException {
+    UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestInitSubInterfaceServiceTemplate(), null,
+        getUnifiedCompositionDataListWithOnePortAndSubInterface(), getContext(false));
+    Optional<String>
+        nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo,
+        VDBE_UNTR_1_SUBPORTS + "_Invalid");
+    Assert.assertEquals(nodeTemplateId.isPresent(), false);
+  }
+
+  private ServiceTemplate getTestInitSubInterfaceServiceTemplate() throws IOException {
+    ToscaServiceModel serviceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype",
+            null, null);
+    Optional<ServiceTemplate> serviceTemplate = serviceModel.getServiceTemplate("MainServiceTemplate.yaml");
+    return serviceTemplate.get();
+  }
+
+  private ServiceTemplate getTestSubInterfaceServiceTemplateMultipleVlan() throws IOException {
+    ToscaServiceModel serviceModel = TestUtils.loadToscaServiceModel
+        ("/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype",
+            null, null);
+    Optional<ServiceTemplate> serviceTemplate = serviceModel.getServiceTemplate("MainServiceTemplate.yaml");
+    return serviceTemplate.get();
+  }
+
+  private List<UnifiedCompositionData> getInitUnifiedCompositionDataList() {
+    List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>(1);
+    UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+    ComputeTemplateConsolidationData computeTemplateConsolidationData = new ComputeTemplateConsolidationData();
+    computeTemplateConsolidationData.setNodeTemplateId("vdbe_node_1");
+    unifiedCompositionData.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
+    unifiedCompositionDataList.add(unifiedCompositionData);
+    return unifiedCompositionDataList;
+  }
+
+  private List<UnifiedCompositionData> getUnifiedCompositionDataListWithOnePortAndSubInterface() {
+    List<UnifiedCompositionData> unifiedCompositionDataList = getInitUnifiedCompositionDataList();
+    UnifiedCompositionData unifiedCompositionData = unifiedCompositionDataList.get(0);
+    ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
+        .getComputeTemplateConsolidationData();
+    List<String> ports = new ArrayList<>(1);
+    ports.add(VDBE_UNTR_1_PORT);
+    Map<String, List<String>> portMap = new HashMap<>();
+    portMap.put(VDBE_UNTR_1_PORT, ports);
+    computeTemplateConsolidationData.setPorts(portMap);
+
+
+    PortTemplateConsolidationData portTemplateConsolidationData = new PortTemplateConsolidationData();
+    portTemplateConsolidationData.setNodeTemplateId(VDBE_UNTR_1_PORT);
+    SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData = new
+        SubInterfaceTemplateConsolidationData();
+    subInterfaceTemplateConsolidationData.setNodeTemplateId(VDBE_UNTR_1_SUBPORTS);
+    subInterfaceTemplateConsolidationData.setParentPortNodeTemplateId(VDBE_UNTR_1_PORT);
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = new ArrayList<>(1);
+    subInterfaceTemplateConsolidationDataList.add(subInterfaceTemplateConsolidationData);
+    portTemplateConsolidationData.addSubInterfaceConsolidationData(
+        SUBINTERFACE_TYPE_NESTED,
+        subInterfaceTemplateConsolidationData);
+
+    List<PortTemplateConsolidationData> portTemplateConsolidationDataList = new ArrayList<>(1);
+    portTemplateConsolidationDataList.add(portTemplateConsolidationData);
+    unifiedCompositionData.setPortTemplateConsolidationDataList(portTemplateConsolidationDataList);
+    unifiedCompositionData.setSubInterfaceTemplateConsolidationDataList(subInterfaceTemplateConsolidationDataList);
+
+
+    return unifiedCompositionDataList;
+  }
+
+  private List<UnifiedCompositionData> getUnifiedCompositionDataListWithTwoSubInterfacesOfSameType() {
+    List<UnifiedCompositionData> unifiedCompositionDataList = getUnifiedCompositionDataListWithOnePortAndSubInterface();
+    List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = unifiedCompositionDataList
+        .get(0).getSubInterfaceTemplateConsolidationDataList();
+    SubInterfaceTemplateConsolidationData anotherSubInterfaceData = new SubInterfaceTemplateConsolidationData();
+    anotherSubInterfaceData.setNodeTemplateId(VDBE_UNTR_2_SUBPORTS);
+    anotherSubInterfaceData.setParentPortNodeTemplateId(VDBE_UNTR_1_PORT);
+    subInterfaceTemplateConsolidationDataList.add(anotherSubInterfaceData);
+    unifiedCompositionDataList.get(0).getPortTemplateConsolidationDataList().get(0).addSubInterfaceConsolidationData
+        (SUBINTERFACE_TYPE_NESTED, anotherSubInterfaceData);
+    return unifiedCompositionDataList;
+  }
+
+  private TranslationContext getContext(boolean isMultipleSubInterfaceTest) {
+    FilePortConsolidationData filePortConsolidationData = new FilePortConsolidationData();
+    PortTemplateConsolidationData portTemplateConsolidationData = isMultipleSubInterfaceTest
+        ? getUnifiedCompositionDataListWithTwoSubInterfacesOfSameType().get(0).getPortTemplateConsolidationDataList().get(0)
+        : getUnifiedCompositionDataListWithOnePortAndSubInterface().get(0).getPortTemplateConsolidationDataList().get(0);
+    filePortConsolidationData.setPortTemplateConsolidationData(portTemplateConsolidationData
+        .getNodeTemplateId(), portTemplateConsolidationData);
+    TranslationContext context = new TranslationContext();
+    context.setConsolidationData(new ConsolidationData());
+    context.getConsolidationData().getPortConsolidationData()
+        .setFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, filePortConsolidationData);
+    context.getConsolidationData().getPortConsolidationData().getFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML);
+    return context;
+  }
+
+}
index dfd7204..08611c0 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: GlobalSubstitutionTypes
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-node_types:
-  org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_a_child:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
-    properties:
-      vf_module_id:
-        type: string
-        description: Unique ID for this VF Module instance
-        required: true
-        status: SUPPORTED
-      ssc_a_name_0:
-        type: string
-        description: Name of Perimeta VM A instance
-        required: true
-        status: SUPPORTED
-      int_ha_network_plen:
-        type: float
-        description: Prefix length of subnet associated with internal HA network
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 0
-          - 31
-      unused_port_net_id:
-        type: string
-        description: Service network unused port network UUID
-        required: true
-        status: SUPPORTED
-      perimeta_server_group:
-        type: string
-        description: Server group to use for these VMs
-        required: true
-        status: SUPPORTED
-      perimeta_config:
-        type: string
-        description: JSON orchestration template configuration for instance.
-        required: true
-        status: SUPPORTED
-      ssc_a_int_ha_ip_0:
-        type: string
-        description: Fixed IP address to use as HA IP of A instance.
-        required: true
-        status: SUPPORTED
-      vnf_name:
-        type: string
-        description: Unique name for this VNF instance
-        required: true
-        status: SUPPORTED
-      perimeta_untrusted_vlan_ids:
-        type: list
-        description: List of VLAN IDs to use on the untrusted/access network
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      int_ha_net_id:
-        type: string
-        description: HA network id
-        required: true
-        status: SUPPORTED
-      ssc_b_int_ha_ip_0:
-        type: string
-        description: Fixed IP address to use as HA IPs of B instance.
-        required: true
-        status: SUPPORTED
-      ssc_mgmt_vip_0:
-        type: string
-        description: Management virtual IP address.
-        required: true
-        status: SUPPORTED
-      ssc_a_trusted_ip_0:
-        type: string
-        description: Fixed IP address to use as Trusted/core fixed IPs of A instance.
-        required: true
-        status: SUPPORTED
-      perimeta_keypair:
-        type: string
-        description: Keypair to use for accessing this Perimeta instance
-        required: true
-        status: SUPPORTED
-      vnf_id:
-        type: string
-        description: VNF ID of this deployment
-        required: true
-        status: SUPPORTED
-      availability_zone_0:
-        type: string
-        description: Availability zone for A instances.
-        required: true
-        status: SUPPORTED
-      ssc_trusted_vip_0:
-        type: string
-        description: Trusted/core virtual IP address.
-        required: true
-        status: SUPPORTED
-      ssc_untrusted_vip_0:
-        type: string
-        description: Untrusted/access virtual IP address
-        required: true
-        status: SUPPORTED
-      perimeta_sec_groups:
-        type: list
-        description: List of security groups to add on trusted interfaces.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      ssc_a_untrusted_v6_ip_0:
-        type: string
-        description: Fixed IP address to use as Untrusted/access alternate fixed IP of A instance.
-        required: true
-        status: SUPPORTED
-      perimeta_untrusted_num_vlans:
-        type: float
-        description: number of VLANs to connect to the untrusted/access interface
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 1
-          - 1001
-      ssc_rf_vip_0:
-        type: string
-        description: RF virtual IP address to use for SSC.
-        required: true
-        status: SUPPORTED
-      ssc_a_mgmt_ip_0:
-        type: string
-        description: Fixed IP address to use as management IP of A instance.
-        required: true
-        status: SUPPORTED
-      trusted_net_id:
-        type: string
-        description: Trusted/core network UUID
-        required: true
-        status: SUPPORTED
-      ssc_untrusted_parent_vip_0:
-        type: string
-        description: Untrusted/access parent virtual IP address
-        required: true
-        status: SUPPORTED
-      ssc_untrusted_v6_vip_0:
-        type: string
-        description: Untrusted/access alternate virtual IP address
-        required: true
-        status: SUPPORTED
-      ssc_a_rf_ip_0:
-        type: string
-        description: RF fixed IP address to use for SSC A.
-        required: true
-        status: SUPPORTED
-      vm_role:
-        type: string
-        description: Role of these VMs
-        required: true
-        status: SUPPORTED
-      ssc_a_untrusted_parent_ip_0:
-        type: string
-        description: Fixed IP address to use as Untrusted/access fixed IP of A parent instance.
-        required: true
-        status: SUPPORTED
-      perimeta_untrusted_vlan_networks:
-        type: list
-        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      ssc_a_untrusted_ip_0:
-        type: string
-        description: Fixed IP address to use as Untrusted/access fixed IP of A instance.
-        required: true
-        status: SUPPORTED
-      perimeta_image_name:
-        type: string
-        description: Glance image for Perimeta instance
-        required: true
-        status: SUPPORTED
-      mgmt_net_id:
-        type: string
-        description: Management network id
-        required: true
-        status: SUPPORTED
-      int_untrusted_parent_net_id:
-        type: string
-        description: internal Untrusted/access parent network id
-        required: true
-        status: SUPPORTED
-      perimeta_flavor_name:
-        type: string
-        description: Flavor to use for creating VM instances
-        required: true
-        status: SUPPORTED
-    requirements:
-    - dependency_perimeta_ssc_a_ha_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_a_ha_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_a_untrusted_parent_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_a_untrusted_parent_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_a_mgmt_1_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_a_mgmt_1_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_a_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_a_trusted_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_a_trusted_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_a_unused_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_a_unused_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_a_mgmt_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_a_mgmt_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_a_server_0:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_perimeta_ssc_a_server_0:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    capabilities:
-      disk.ephemeral.size_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      instance_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_mgmt_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_a_mgmt_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      endpoint_perimeta_ssc_a_server_0:
-        type: tosca.capabilities.Endpoint.Admin
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.usage_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests.rate_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_mgmt_1_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_a_mgmt_1_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes.rate_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests.rate_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_server_0:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.iops_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_a_mgmt_1_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_a_trusted_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.capacity_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      os_perimeta_ssc_a_server_0:
-        type: tosca.capabilities.OperatingSystem
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes.rate_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_util_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_a_untrusted_parent_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.allocation_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_a_unused_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_trusted_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.latency_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_a_ha_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_a_server_0:
-        type: tosca.capabilities.network.Bindable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.requests_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_a_ha_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      scalable_perimeta_ssc_a_server_0:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.usage_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_untrusted_parent_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_ha_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu.delta_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.usage_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.iops_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_a_trusted_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes.rate_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_a_untrusted_parent_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.root.size_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.allocation_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests.rate_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_a_unused_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes.rate_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_a_unused_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      host_perimeta_ssc_a_server_0:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_a_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_a_mgmt_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.capacity_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_a_ha_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      vcpus_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_a_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.latency_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.resident_perimeta_ssc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_b_child:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
-    properties:
-      vf_module_id:
-        type: string
-        description: Unique ID for this VF Module instance
-        required: true
-        status: SUPPORTED
-      int_ha_network_plen:
-        type: float
-        description: Prefix length of subnet associated with internal HA network
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 0
-          - 31
-      unused_port_net_id:
-        type: string
-        description: Service network unused port network UUID
-        required: true
-        status: SUPPORTED
-      perimeta_server_group:
-        type: string
-        description: Server group to use for these VMs
-        required: true
-        status: SUPPORTED
-      ssc_b_name_0:
-        type: string
-        description: Name of Perimeta VM B instance
-        required: true
-        status: SUPPORTED
-      ssc_a_int_ha_ip_0:
-        type: string
-        description: Fixed IP address to use as HA IPs of A instance.
-        required: true
-        status: SUPPORTED
-      ssc_b_untrusted_ip_0:
-        type: string
-        description: Fixed IP address to use as Untrusted/access fixed IP of B instance.
-        required: true
-        status: SUPPORTED
-      ssc_b_mgmt_ip_0:
-        type: string
-        description: Fixed IP address to use as management IP of B instance.
-        required: true
-        status: SUPPORTED
-      ssc_b_untrusted_parent_ip_0:
-        type: string
-        description: Fixed IP address to use as Untrusted/access fixed IP of B parent instance.
-        required: true
-        status: SUPPORTED
-      vnf_name:
-        type: string
-        description: Unique name for this VNF instance
-        required: true
-        status: SUPPORTED
-      perimeta_untrusted_vlan_ids:
-        type: list
-        description: List of VLAN IDs to use on the untrusted/access network
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      int_ha_net_id:
-        type: string
-        description: HA network id
-        required: true
-        status: SUPPORTED
-      ssc_b_int_ha_ip_0:
-        type: string
-        description: Fixed IP address to use as HA IP of B instance.
-        required: true
-        status: SUPPORTED
-      ssc_mgmt_vip_0:
-        type: string
-        description: Management virtual IP address.
-        required: true
-        status: SUPPORTED
-      perimeta_keypair:
-        type: string
-        description: Keypair to use for accessing this Perimeta instance
-        required: true
-        status: SUPPORTED
-      vnf_id:
-        type: string
-        description: VNF ID of this deployment
-        required: true
-        status: SUPPORTED
-      availability_zone_1:
-        type: string
-        description: Availability zone for B instances.  May be the same as A instance.
-        required: true
-        status: SUPPORTED
-      ssc_trusted_vip_0:
-        type: string
-        description: Trusted/core virtual IP address.
-        required: true
-        status: SUPPORTED
-      ssc_untrusted_vip_0:
-        type: string
-        description: Untrusted/access virtual IP address
-        required: true
-        status: SUPPORTED
-      perimeta_sec_groups:
-        type: list
-        description: List of security groups to add on trusted interfaces.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_untrusted_num_vlans:
-        type: float
-        description: number of VLANs to connect to the untrusted/access interface
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 1
-          - 1001
-      ssc_rf_vip_0:
-        type: string
-        description: RF virtual IP address to use for SSC.
-        required: true
-        status: SUPPORTED
-      ssc_b_trusted_ip_0:
-        type: string
-        description: Fixed IP address to use as Trusted/core fixed IPs of B instance.
-        required: true
-        status: SUPPORTED
-      trusted_net_id:
-        type: string
-        description: Trusted/core network UUID
-        required: true
-        status: SUPPORTED
-      ssc_untrusted_parent_vip_0:
-        type: string
-        description: Untrusted/access parent virtual IP address
-        required: true
-        status: SUPPORTED
-      ssc_untrusted_v6_vip_0:
-        type: string
-        description: Untrusted/access alternate virtual IP address
-        required: true
-        status: SUPPORTED
-      ssc_b_untrusted_v6_ip_0:
-        type: string
-        description: Fixed IP address to use as Untrusted/access alternate fixed IP of B instance.
-        required: true
-        status: SUPPORTED
-      vm_role:
-        type: string
-        description: Role of these VMs
-        required: true
-        status: SUPPORTED
-      perimeta_untrusted_vlan_networks:
-        type: list
-        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_image_name:
-        type: string
-        description: Glance image for Perimeta instance
-        required: true
-        status: SUPPORTED
-      ssc_b_rf_ip_0:
-        type: string
-        description: RF fixed IP address to use for SSC B.
-        required: true
-        status: SUPPORTED
-      mgmt_net_id:
-        type: string
-        description: Management network id
-        required: true
-        status: SUPPORTED
-      int_untrusted_parent_net_id:
-        type: string
-        description: internal Untrusted/access parent network id
-        required: true
-        status: SUPPORTED
-      perimeta_flavor_name:
-        type: string
-        description: Flavor to use for creating VM instances
-        required: true
-        status: SUPPORTED
-    requirements:
-    - dependency_perimeta_ssc_b_trusted_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_b_trusted_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_b_untrusted_parent_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_b_untrusted_parent_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_b_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_b_mgmt_1_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_b_mgmt_1_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_b_unused_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_b_unused_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_b_server_0:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_perimeta_ssc_b_server_0:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_perimeta_ssc_b_mgmt_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_b_mgmt_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_ssc_b_ha_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_ssc_b_ha_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    capabilities:
-      host_perimeta_ssc_b_server_0:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      vcpus_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_b_mgmt_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      os_perimeta_ssc_b_server_0:
-        type: tosca.capabilities.OperatingSystem
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes.rate_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.allocation_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests.rate_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_b_trusted_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.device.iops_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.usage_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_mgmt_1_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_unused_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      endpoint_perimeta_ssc_b_server_0:
-        type: tosca.capabilities.Endpoint.Admin
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_server_0:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_b_mgmt_1_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu.delta_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.root.size_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.resident_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.ephemeral.size_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      instance_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_b_untrusted_parent_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_trusted_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_b_mgmt_1_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.latency_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_b_unused_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_b_ha_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      forwarder_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.capacity_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_ha_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_b_untrusted_parent_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      binding_perimeta_ssc_b_server_0:
-        type: tosca.capabilities.network.Bindable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      scalable_perimeta_ssc_b_server_0:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.latency_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes.rate_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.requests_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_untrusted_parent_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.usage_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_b_ha_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_b_trusted_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.allocation_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.iops_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests.rate_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.usage_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_b_unused_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_util_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes.rate_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.capacity_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_ssc_b_mgmt_1_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_ssc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes.rate_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests.rate_perimeta_ssc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_ssc_b_mgmt_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_ssc_b_mgmt_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_ssc_b_unused_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_a_child:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
-    properties:
-      vf_module_id:
-        type: string
-        description: Unique ID for this VF Module instance
-        required: true
-        status: SUPPORTED
-      int_ha_network_plen:
-        type: float
-        description: Prefix length of subnet associated with internal HA network
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 0
-          - 31
-      perimeta_config:
-        type: string
-        description: JSON orchestration template configuration for instance.
-        required: true
-        status: SUPPORTED
-      vnf_name:
-        type: string
-        description: Unique name for this VNF instance
-        required: true
-        status: SUPPORTED
-      perimeta_untrusted_vlan_ids:
-        type: list
-        description: List of VLAN IDs to use on the untrusted/access network
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      int_ha_net_id:
-        type: string
-        description: HA network id
-        required: true
-        status: SUPPORTED
-      perimeta_instance_index:
-        type: float
-        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 0
-          - 19
-      perimeta_keypair:
-        type: string
-        description: Keypair to use for accessing this Perimeta instance
-        required: true
-        status: SUPPORTED
-      perimeta_server_groups:
-        type: list
-        description: Server groups to use for these VMs
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      vnf_id:
-        type: string
-        description: VNF ID of this deployment
-        required: true
-        status: SUPPORTED
-      availability_zone_0:
-        type: string
-        description: Availability zone for A instances.
-        required: true
-        status: SUPPORTED
-      rtp_msc_mgmt_vips:
-        type: list
-        description: List of management virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_sec_groups:
-        type: list
-        description: List of security groups to add on trusted interfaces.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_untrusted_parent_vips:
-        type: list
-        description: List of Untrusted/access parent virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_untrusted_num_vlans:
-        type: float
-        description: number of VLANs to connect to the untrusted/access interface
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 1
-          - 1001
-      rtp_msc_a_int_ha_ips:
-        type: list
-        description: List of fixed IP addresses to use as HA IPs of A instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_a_untrusted_parent_ips:
-        type: list
-        description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of A instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_a_trusted_ips:
-        type: list
-        description: List of fixed IP addresses to use as Trusted/core fixed IPs of A instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_untrusted_vips:
-        type: list
-        description: List of Untrusted/access virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      trusted_net_id:
-        type: string
-        description: Trusted/core network UUID
-        required: true
-        status: SUPPORTED
-      rtp_msc_b_int_ha_ips:
-        type: list
-        description: List of fixed IP addresses to use as HA IPs of B instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_a_mgmt_ips:
-        type: list
-        description: List of fixed IP addresses to use as management IPs of A instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_a_untrusted_ips:
-        type: list
-        description: List of fixed IP addresses to use as Untrusted/access fixed IPs of A instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      vm_role:
-        type: string
-        description: Role of these VMs
-        required: true
-        status: SUPPORTED
-      rtp_msc_untrusted_v6_vips:
-        type: list
-        description: List of Untrusted/access alternate virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_untrusted_vlan_networks:
-        type: list
-        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_a_untrusted_v6_ips:
-        type: list
-        description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of A instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_image_name:
-        type: string
-        description: Glance image for Perimeta instance
-        required: true
-        status: SUPPORTED
-      mgmt_net_id:
-        type: string
-        description: Management network id
-        required: true
-        status: SUPPORTED
-      int_untrusted_parent_net_id:
-        type: string
-        description: internal Untrusted/access parent network id
-        required: true
-        status: SUPPORTED
-      rtp_msc_a_names:
-        type: list
-        description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_flavor_name:
-        type: string
-        description: Flavor to use for creating VM instances
-        required: true
-        status: SUPPORTED
-      rtp_msc_trusted_vips:
-        type: list
-        description: List of Trusted/core virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-    requirements:
-    - dependency_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_a_trusted_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_a_trusted_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_a_ha_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_a_ha_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_a_server_0:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_perimeta_rtp_msc_a_server_0:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_perimeta_rtp_msc_a_mgmt_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_a_mgmt_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    capabilities:
-      attachment_perimeta_rtp_msc_a_ha_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_rtp_msc_a_mgmt_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_a_trusted_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.latency_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      vcpus_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.resident_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.capacity_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      os_perimeta_rtp_msc_a_server_0:
-        type: tosca.capabilities.OperatingSystem
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_a_ha_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.allocation_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests.rate_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.iops_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_a_mgmt_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.usage_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_rtp_msc_a_trusted_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.usage_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_a_ha_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.iops_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.allocation_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes.rate_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.capacity_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.ephemeral.size_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_util_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      scalable_perimeta_rtp_msc_a_server_0:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      host_perimeta_rtp_msc_a_server_0:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests.rate_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.root.size_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes.rate_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      endpoint_perimeta_rtp_msc_a_server_0:
-        type: tosca.capabilities.Endpoint.Admin
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_a_server_0:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_a_server_0:
-        type: tosca.capabilities.network.Bindable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests.rate_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_a_trusted_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      instance_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes.rate_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_a_mgmt_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.latency_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_a_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.requests_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes.rate_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu.delta_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.usage_perimeta_rtp_msc_a_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
-    properties:
-      perimeta_parent_interface:
-        type: string
-        description: Parent Contrail interface
-        required: true
-        status: SUPPORTED
-      perimeta_v6_vip_0:
-        type: string
-        description: virtual IPv6 address associated with subinterfaces
-        required: true
-        status: SUPPORTED
-      perimeta_subinterface_name_prefix:
-        type: string
-        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
-        required: true
-        status: SUPPORTED
-      perimeta_vlan_networks:
-        type: list
-        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_subinterface_instance_index:
-        type: float
-        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 1
-          - 1001
-      perimeta_ip_0:
-        type: string
-        description: IPv4 address associated with subinterfaces
-        required: true
-        status: SUPPORTED
-      perimeta_vip_0:
-        type: string
-        description: virtual IPv4 address associated with subinterfaces
-        required: true
-        status: SUPPORTED
-      perimeta_vlan_ids:
-        type: list
-        description: List of VLAN IDs to use for subinterfaces
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_mac_address:
-        type: string
-        description: MAC address to use for subinterface
-        required: true
-        status: SUPPORTED
-      perimeta_v6_ip_0:
-        type: string
-        description: IPv6 address associated with subinterfaces
-        required: true
-        status: SUPPORTED
-    requirements:
-    - dependency_contrail_vmi_subinterface:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_contrail_vmi_subinterface:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - binding_contrail_vmi_subinterface:
-        capability: tosca.capabilities.network.Bindable
-        node: org.openecomp.resource.cp.nodes.network.Port
-        relationship: tosca.relationships.network.BindsTo
-        occurrences:
-        - 1
-        - 1
-    capabilities:
-      feature_contrail_vmi_subinterface:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_b_child:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
-    properties:
-      vf_module_id:
-        type: string
-        description: Unique ID for this VF Module instance
-        required: true
-        status: SUPPORTED
-      int_ha_network_plen:
-        type: float
-        description: Prefix length of subnet associated with internal HA network
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 0
-          - 31
-      rtp_msc_b_untrusted_v6_ips:
-        type: list
-        description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of B instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_b_mgmt_ips:
-        type: list
-        description: List of fixed IP addresses to use as management IPs of B instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      vnf_name:
-        type: string
-        description: Unique name for this VNF instance
-        required: true
-        status: SUPPORTED
-      perimeta_untrusted_vlan_ids:
-        type: list
-        description: List of VLAN IDs to use on the untrusted/access network
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_b_names:
-        type: list
-        description: List of names of Perimeta VM B instances, indexed by perimeta_instance_index
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_b_untrusted_ips:
-        type: list
-        description: List of fixed IP addresses to use as Untrusted/access fixed IPs of B instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      int_ha_net_id:
-        type: string
-        description: HA network id
-        required: true
-        status: SUPPORTED
-      perimeta_instance_index:
-        type: float
-        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 0
-          - 19
-      perimeta_keypair:
-        type: string
-        description: Keypair to use for accessing this Perimeta instance
-        required: true
-        status: SUPPORTED
-      perimeta_server_groups:
-        type: list
-        description: Server groups to use for these VMs
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      vnf_id:
-        type: string
-        description: VNF ID of this deployment
-        required: true
-        status: SUPPORTED
-      availability_zone_1:
-        type: string
-        description: Availability zone for B instances.  May be the same as A instance.
-        required: true
-        status: SUPPORTED
-      rtp_msc_mgmt_vips:
-        type: list
-        description: List of management virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_sec_groups:
-        type: list
-        description: List of security groups to add on trusted interfaces.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_untrusted_parent_vips:
-        type: list
-        description: List of Untrusted/access parent virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_untrusted_num_vlans:
-        type: float
-        description: number of VLANs to connect to the untrusted/access interface
-        required: true
-        status: SUPPORTED
-        constraints:
-        - in_range:
-          - 1
-          - 1001
-      rtp_msc_a_int_ha_ips:
-        type: list
-        description: List of fixed IP addresses to use as HA IPs of A instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_b_trusted_ips:
-        type: list
-        description: List of fixed IP addresses to use as Trusted/core fixed IPs of B instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      rtp_msc_untrusted_vips:
-        type: list
-        description: List of Untrusted/access virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      trusted_net_id:
-        type: string
-        description: Trusted/core network UUID
-        required: true
-        status: SUPPORTED
-      rtp_msc_b_int_ha_ips:
-        type: list
-        description: List of fixed IP addresses to use as HA IPs of B instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      vm_role:
-        type: string
-        description: Role of these VMs
-        required: true
-        status: SUPPORTED
-      rtp_msc_untrusted_v6_vips:
-        type: list
-        description: List of Untrusted/access alternate virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_untrusted_vlan_networks:
-        type: list
-        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      perimeta_image_name:
-        type: string
-        description: Glance image for Perimeta instance
-        required: true
-        status: SUPPORTED
-      rtp_msc_b_untrusted_parent_ips:
-        type: list
-        description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of B instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      mgmt_net_id:
-        type: string
-        description: Management network id
-        required: true
-        status: SUPPORTED
-      int_untrusted_parent_net_id:
-        type: string
-        description: internal Untrusted/access parent network id
-        required: true
-        status: SUPPORTED
-      perimeta_flavor_name:
-        type: string
-        description: Flavor to use for creating VM instances
-        required: true
-        status: SUPPORTED
-      rtp_msc_trusted_vips:
-        type: list
-        description: List of Trusted/core virtual IP addresses for all instances.
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-    requirements:
-    - dependency_perimeta_rtp_msc_b_trusted_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_b_trusted_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_b_mgmt_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_b_mgmt_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_b_server_0:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_perimeta_rtp_msc_b_server_0:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_perimeta_rtp_msc_b_ha_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_b_ha_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    capabilities:
-      attachment_perimeta_rtp_msc_b_mgmt_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.requests_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_rtp_msc_b_trusted_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests.rate_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.latency_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes.rate_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_b_server_0:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.ephemeral.size_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_rtp_msc_b_ha_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.capacity_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.capacity_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_b_ha_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.device.usage_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.allocation_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests.rate_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.root.size_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_util_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.latency_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      os_perimeta_rtp_msc_b_server_0:
-        type: tosca.capabilities.OperatingSystem
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes.rate_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      forwarder_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.Forwarder
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.iops_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      instance_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests.rate_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      vcpus_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.resident_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_b_mgmt_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      endpoint_perimeta_rtp_msc_b_server_0:
-        type: tosca.capabilities.Endpoint.Admin
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes.rate_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory.usage_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      scalable_perimeta_rtp_msc_b_server_0:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu.delta_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.bytes_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.allocation_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.usage_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_b_mgmt_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      host_perimeta_rtp_msc_b_server_0:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outpoing.packets_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_b_trusted_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_b_trusted_0_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_ha_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.iops_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_perimeta_rtp_msc_b_ha_0_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_perimeta_rtp_msc_b_server_0:
-        type: tosca.capabilities.network.Bindable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_trusted_0_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.read.bytes.rate_perimeta_rtp_msc_b_server_0:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_a_child:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      vf_module_id:\r
+        type: string\r
+        description: Unique ID for this VF Module instance\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_a_name_0:\r
+        type: string\r
+        description: Name of Perimeta VM A instance\r
+        required: true\r
+        status: SUPPORTED\r
+      int_ha_network_plen:\r
+        type: float\r
+        description: Prefix length of subnet associated with internal HA network\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 0\r
+          - 31\r
+      unused_port_net_id:\r
+        type: string\r
+        description: Service network unused port network UUID\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_server_group:\r
+        type: string\r
+        description: Server group to use for these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_config:\r
+        type: string\r
+        description: JSON orchestration template configuration for instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_a_int_ha_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as HA IP of A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      vnf_name:\r
+        type: string\r
+        description: Unique name for this VNF instance\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_untrusted_vlan_ids:\r
+        type: list\r
+        description: List of VLAN IDs to use on the untrusted/access network\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      int_ha_net_id:\r
+        type: string\r
+        description: HA network id\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_int_ha_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as HA IPs of B instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_mgmt_vip_0:\r
+        type: string\r
+        description: Management virtual IP address.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_a_trusted_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Trusted/core fixed IPs of A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_keypair:\r
+        type: string\r
+        description: Keypair to use for accessing this Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      vnf_id:\r
+        type: string\r
+        description: VNF ID of this deployment\r
+        required: true\r
+        status: SUPPORTED\r
+      availability_zone_0:\r
+        type: string\r
+        description: Availability zone for A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_trusted_vip_0:\r
+        type: string\r
+        description: Trusted/core virtual IP address.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_untrusted_vip_0:\r
+        type: string\r
+        description: Untrusted/access virtual IP address\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_sec_groups:\r
+        type: list\r
+        description: List of security groups to add on trusted interfaces.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      ssc_a_untrusted_v6_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Untrusted/access alternate fixed IP of A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_untrusted_num_vlans:\r
+        type: float\r
+        description: number of VLANs to connect to the untrusted/access interface\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 1001\r
+      ssc_rf_vip_0:\r
+        type: string\r
+        description: RF virtual IP address to use for SSC.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_a_mgmt_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as management IP of A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      trusted_net_id:\r
+        type: string\r
+        description: Trusted/core network UUID\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_untrusted_parent_vip_0:\r
+        type: string\r
+        description: Untrusted/access parent virtual IP address\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_untrusted_v6_vip_0:\r
+        type: string\r
+        description: Untrusted/access alternate virtual IP address\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_a_rf_ip_0:\r
+        type: string\r
+        description: RF fixed IP address to use for SSC A.\r
+        required: true\r
+        status: SUPPORTED\r
+      vm_role:\r
+        type: string\r
+        description: Role of these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_a_untrusted_parent_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Untrusted/access fixed IP of A parent instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_untrusted_vlan_networks:\r
+        type: list\r
+        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      ssc_a_untrusted_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Untrusted/access fixed IP of A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_image_name:\r
+        type: string\r
+        description: Glance image for Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      mgmt_net_id:\r
+        type: string\r
+        description: Management network id\r
+        required: true\r
+        status: SUPPORTED\r
+      int_untrusted_parent_net_id:\r
+        type: string\r
+        description: internal Untrusted/access parent network id\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_flavor_name:\r
+        type: string\r
+        description: Flavor to use for creating VM instances\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_perimeta_ssc_a_ha_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_a_ha_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_a_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_a_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_a_mgmt_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_a_mgmt_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_a_trusted_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_a_trusted_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_a_unused_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_a_unused_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_a_mgmt_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_a_mgmt_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_a_server_0:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_perimeta_ssc_a_server_0:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    capabilities:\r
+      disk.ephemeral.size_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_mgmt_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_a_mgmt_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_perimeta_ssc_a_server_0:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_mgmt_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_a_mgmt_1_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_server_0:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_a_mgmt_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_a_trusted_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_perimeta_ssc_a_server_0:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_a_unused_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_trusted_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_a_server_0:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_a_ha_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_perimeta_ssc_a_server_0:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_ha_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_a_trusted_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.root.size_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_a_unused_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_a_unused_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_perimeta_ssc_a_server_0:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_a_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_a_mgmt_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_a_ha_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      vcpus_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_a_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_perimeta_ssc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      perimeta_parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_v6_vip_0:\r
+        type: string\r
+        description: virtual IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_subinterface_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_vlan_networks:\r
+        type: list\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_subinterface_instance_index:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 1001\r
+      perimeta_ip_0:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_vip_0:\r
+        type: string\r
+        description: virtual IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_vlan_ids:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_mac_address:\r
+        type: string\r
+        description: MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_v6_ip_0:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_contrail_vmi_subinterface:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_contrail_vmi_subinterface:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_contrail_vmi_subinterface:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_contrail_vmi_subinterface:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_b_child:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      vf_module_id:\r
+        type: string\r
+        description: Unique ID for this VF Module instance\r
+        required: true\r
+        status: SUPPORTED\r
+      int_ha_network_plen:\r
+        type: float\r
+        description: Prefix length of subnet associated with internal HA network\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 0\r
+          - 31\r
+      unused_port_net_id:\r
+        type: string\r
+        description: Service network unused port network UUID\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_server_group:\r
+        type: string\r
+        description: Server group to use for these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_name_0:\r
+        type: string\r
+        description: Name of Perimeta VM B instance\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_a_int_ha_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as HA IPs of A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_untrusted_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Untrusted/access fixed IP of B instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_mgmt_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as management IP of B instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_untrusted_parent_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Untrusted/access fixed IP of B parent instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      vnf_name:\r
+        type: string\r
+        description: Unique name for this VNF instance\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_untrusted_vlan_ids:\r
+        type: list\r
+        description: List of VLAN IDs to use on the untrusted/access network\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      int_ha_net_id:\r
+        type: string\r
+        description: HA network id\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_int_ha_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as HA IP of B instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_mgmt_vip_0:\r
+        type: string\r
+        description: Management virtual IP address.\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_keypair:\r
+        type: string\r
+        description: Keypair to use for accessing this Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      vnf_id:\r
+        type: string\r
+        description: VNF ID of this deployment\r
+        required: true\r
+        status: SUPPORTED\r
+      availability_zone_1:\r
+        type: string\r
+        description: Availability zone for B instances.  May be the same as A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_trusted_vip_0:\r
+        type: string\r
+        description: Trusted/core virtual IP address.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_untrusted_vip_0:\r
+        type: string\r
+        description: Untrusted/access virtual IP address\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_sec_groups:\r
+        type: list\r
+        description: List of security groups to add on trusted interfaces.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_untrusted_num_vlans:\r
+        type: float\r
+        description: number of VLANs to connect to the untrusted/access interface\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 1001\r
+      ssc_rf_vip_0:\r
+        type: string\r
+        description: RF virtual IP address to use for SSC.\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_trusted_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Trusted/core fixed IPs of B instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      trusted_net_id:\r
+        type: string\r
+        description: Trusted/core network UUID\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_untrusted_parent_vip_0:\r
+        type: string\r
+        description: Untrusted/access parent virtual IP address\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_untrusted_v6_vip_0:\r
+        type: string\r
+        description: Untrusted/access alternate virtual IP address\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_untrusted_v6_ip_0:\r
+        type: string\r
+        description: Fixed IP address to use as Untrusted/access alternate fixed IP of B instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      vm_role:\r
+        type: string\r
+        description: Role of these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_untrusted_vlan_networks:\r
+        type: list\r
+        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_image_name:\r
+        type: string\r
+        description: Glance image for Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      ssc_b_rf_ip_0:\r
+        type: string\r
+        description: RF fixed IP address to use for SSC B.\r
+        required: true\r
+        status: SUPPORTED\r
+      mgmt_net_id:\r
+        type: string\r
+        description: Management network id\r
+        required: true\r
+        status: SUPPORTED\r
+      int_untrusted_parent_net_id:\r
+        type: string\r
+        description: internal Untrusted/access parent network id\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_flavor_name:\r
+        type: string\r
+        description: Flavor to use for creating VM instances\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_perimeta_ssc_b_trusted_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_b_trusted_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_b_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_b_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_b_mgmt_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_b_mgmt_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_b_unused_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_b_unused_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_b_server_0:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_perimeta_ssc_b_server_0:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_perimeta_ssc_b_mgmt_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_b_mgmt_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_ssc_b_ha_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_ssc_b_ha_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      host_perimeta_ssc_b_server_0:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_b_mgmt_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_perimeta_ssc_b_server_0:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_b_trusted_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.iops_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_mgmt_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_unused_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_perimeta_ssc_b_server_0:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_server_0:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_b_mgmt_1_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_trusted_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_b_mgmt_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_b_unused_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_b_ha_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_ha_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_b_server_0:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_perimeta_ssc_b_server_0:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_b_ha_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_b_trusted_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_b_unused_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_ssc_b_mgmt_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_ssc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_perimeta_ssc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_ssc_b_mgmt_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_ssc_b_mgmt_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_ssc_b_unused_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_a_child:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      vf_module_id:\r
+        type: string\r
+        description: Unique ID for this VF Module instance\r
+        required: true\r
+        status: SUPPORTED\r
+      int_ha_network_plen:\r
+        type: float\r
+        description: Prefix length of subnet associated with internal HA network\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 0\r
+          - 31\r
+      perimeta_config:\r
+        type: string\r
+        description: JSON orchestration template configuration for instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      vnf_name:\r
+        type: string\r
+        description: Unique name for this VNF instance\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_untrusted_vlan_ids:\r
+        type: list\r
+        description: List of VLAN IDs to use on the untrusted/access network\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      int_ha_net_id:\r
+        type: string\r
+        description: HA network id\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_instance_index:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 0\r
+          - 19\r
+      perimeta_keypair:\r
+        type: string\r
+        description: Keypair to use for accessing this Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_server_groups:\r
+        type: list\r
+        description: Server groups to use for these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vnf_id:\r
+        type: string\r
+        description: VNF ID of this deployment\r
+        required: true\r
+        status: SUPPORTED\r
+      availability_zone_0:\r
+        type: string\r
+        description: Availability zone for A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_mgmt_vips:\r
+        type: list\r
+        description: List of management virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_sec_groups:\r
+        type: list\r
+        description: List of security groups to add on trusted interfaces.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_untrusted_parent_vips:\r
+        type: list\r
+        description: List of Untrusted/access parent virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_untrusted_num_vlans:\r
+        type: float\r
+        description: number of VLANs to connect to the untrusted/access interface\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 1001\r
+      rtp_msc_a_int_ha_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as HA IPs of A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_a_untrusted_parent_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_a_trusted_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Trusted/core fixed IPs of A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_untrusted_vips:\r
+        type: list\r
+        description: List of Untrusted/access virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      trusted_net_id:\r
+        type: string\r
+        description: Trusted/core network UUID\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_b_int_ha_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as HA IPs of B instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_a_mgmt_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as management IPs of A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_a_untrusted_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Untrusted/access fixed IPs of A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_role:\r
+        type: string\r
+        description: Role of these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_untrusted_v6_vips:\r
+        type: list\r
+        description: List of Untrusted/access alternate virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_untrusted_vlan_networks:\r
+        type: list\r
+        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_a_untrusted_v6_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_image_name:\r
+        type: string\r
+        description: Glance image for Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      mgmt_net_id:\r
+        type: string\r
+        description: Management network id\r
+        required: true\r
+        status: SUPPORTED\r
+      int_untrusted_parent_net_id:\r
+        type: string\r
+        description: internal Untrusted/access parent network id\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_a_names:\r
+        type: list\r
+        description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_flavor_name:\r
+        type: string\r
+        description: Flavor to use for creating VM instances\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_trusted_vips:\r
+        type: list\r
+        description: List of Trusted/core virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+    requirements:\r
+    - dependency_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_a_trusted_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_a_trusted_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_a_ha_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_a_ha_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_a_server_0:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_perimeta_rtp_msc_a_server_0:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_perimeta_rtp_msc_a_mgmt_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_a_mgmt_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      attachment_perimeta_rtp_msc_a_ha_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_perimeta_rtp_msc_a_server_0:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_a_ha_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_a_ha_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.iops_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_perimeta_rtp_msc_a_server_0:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_perimeta_rtp_msc_a_server_0:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_perimeta_rtp_msc_a_server_0:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_a_server_0:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_a_server_0:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      instance_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.latency_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_perimeta_rtp_msc_a_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_b_child:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      vf_module_id:\r
+        type: string\r
+        description: Unique ID for this VF Module instance\r
+        required: true\r
+        status: SUPPORTED\r
+      int_ha_network_plen:\r
+        type: float\r
+        description: Prefix length of subnet associated with internal HA network\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 0\r
+          - 31\r
+      rtp_msc_b_untrusted_v6_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of B instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_b_mgmt_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as management IPs of B instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vnf_name:\r
+        type: string\r
+        description: Unique name for this VNF instance\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_untrusted_vlan_ids:\r
+        type: list\r
+        description: List of VLAN IDs to use on the untrusted/access network\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_b_names:\r
+        type: list\r
+        description: List of names of Perimeta VM B instances, indexed by perimeta_instance_index\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_b_untrusted_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Untrusted/access fixed IPs of B instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      int_ha_net_id:\r
+        type: string\r
+        description: HA network id\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_instance_index:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 0\r
+          - 19\r
+      perimeta_keypair:\r
+        type: string\r
+        description: Keypair to use for accessing this Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_server_groups:\r
+        type: list\r
+        description: Server groups to use for these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vnf_id:\r
+        type: string\r
+        description: VNF ID of this deployment\r
+        required: true\r
+        status: SUPPORTED\r
+      availability_zone_1:\r
+        type: string\r
+        description: Availability zone for B instances.  May be the same as A instance.\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_mgmt_vips:\r
+        type: list\r
+        description: List of management virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_sec_groups:\r
+        type: list\r
+        description: List of security groups to add on trusted interfaces.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_untrusted_parent_vips:\r
+        type: list\r
+        description: List of Untrusted/access parent virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_untrusted_num_vlans:\r
+        type: float\r
+        description: number of VLANs to connect to the untrusted/access interface\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 1001\r
+      rtp_msc_a_int_ha_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as HA IPs of A instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_b_trusted_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Trusted/core fixed IPs of B instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      rtp_msc_untrusted_vips:\r
+        type: list\r
+        description: List of Untrusted/access virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      trusted_net_id:\r
+        type: string\r
+        description: Trusted/core network UUID\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_b_int_ha_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as HA IPs of B instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_role:\r
+        type: string\r
+        description: Role of these VMs\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_untrusted_v6_vips:\r
+        type: list\r
+        description: List of Untrusted/access alternate virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_untrusted_vlan_networks:\r
+        type: list\r
+        description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      perimeta_image_name:\r
+        type: string\r
+        description: Glance image for Perimeta instance\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_b_untrusted_parent_ips:\r
+        type: list\r
+        description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of B instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      mgmt_net_id:\r
+        type: string\r
+        description: Management network id\r
+        required: true\r
+        status: SUPPORTED\r
+      int_untrusted_parent_net_id:\r
+        type: string\r
+        description: internal Untrusted/access parent network id\r
+        required: true\r
+        status: SUPPORTED\r
+      perimeta_flavor_name:\r
+        type: string\r
+        description: Flavor to use for creating VM instances\r
+        required: true\r
+        status: SUPPORTED\r
+      rtp_msc_trusted_vips:\r
+        type: list\r
+        description: List of Trusted/core virtual IP addresses for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+    requirements:\r
+    - dependency_perimeta_rtp_msc_b_trusted_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_b_trusted_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_b_mgmt_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_b_mgmt_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_b_server_0:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_perimeta_rtp_msc_b_server_0:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_perimeta_rtp_msc_b_ha_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_b_ha_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      attachment_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_b_server_0:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_rtp_msc_b_ha_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_b_ha_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.usage_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      attachment_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Attachment\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_perimeta_rtp_msc_b_server_0:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_perimeta_rtp_msc_b_server_0:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      scalable_perimeta_rtp_msc_b_server_0:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      host_perimeta_rtp_msc_b_server_0:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_ha_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_perimeta_rtp_msc_b_ha_0_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_perimeta_rtp_msc_b_server_0:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
index c96d74e..37f8631 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    ssc_a_name_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_name_0
-      type: string
-      description: Name of VM A of SSC
-      constraints:
-      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,29}$'
-    mgmt_net_plen:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: mgmt_net_plen
-      type: float
-      description: Management network prefix length
-      constraints:
-      - in_range:
-        - 0
-        - 32
-    ssc_b_name_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            source_type: HEAT
-            param_name: ssc_b_name_0
-      type: string
-      description: Name of VM B of SSC
-      constraints:
-      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,29}$'
-    ssc_b_untrusted_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            source_type: HEAT
-            param_name: ssc_b_untrusted_ip_0
-      type: string
-      description: Fixed IPv4 address on Untrusted/access network for SSC B.
-    ssc_b_untrusted_parent_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            source_type: HEAT
-            param_name: ssc_b_untrusted_parent_ip_0
-      type: string
-      description: Fixed IPv4 address on Untrusted/access parent network for SSC B.
-    perimeta_untrusted_vlan_ids:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: perimeta_untrusted_vlan_ids
-      type: list
-      description: List of VLAN IDs to use on the untrusted/access network
-      entry_schema:
-        type: string
-    ssc_json_radius_servername:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_json_radius_servername
-      type: string
-      description: IP Address or hostname of RADIUS server
-    ssc_mgmt_vip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_mgmt_vip_0
-      type: string
-      description: Management virtual IP address to use for SSC.
-    rtp_msc_json_use_radius_authentication:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_json_use_radius_authentication
-      type: string
-      description: Json prefix, used to indicate if user account authentication is done externally through Radius
-      constraints:
-      - valid_values:
-        - ' '
-        - '// not using Radius '
-    ssc_trusted_vip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_trusted_vip_0
-      type: string
-      description: Virtual IPv4 address on Trusted/core network for SSC.
-    ssc_untrusted_vip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_untrusted_vip_0
-      type: string
-      description: Virtual IPv4 address on Untrusted/access network for SSC.
-    perimeta_untrusted_num_vlans:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: perimeta_untrusted_num_vlans
-      type: float
-      description: number of VLANs to connect to the untrusted/access interface
-      constraints:
-      - in_range:
-        - 1
-        - 1001
-    rtp_msc_mgmt_vips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_mgmt_vips
-      type: list
-      description: List of management virtual IP addresses to use for RTP MSC.
-      entry_schema:
-        type: string
-    ssc_a_json_prefix:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_json_prefix
-      type: string
-      description: Json prefix, used to create the correct json file depending on the operation being performed
-      default: ' '
-      constraints:
-      - valid_values:
-        - ' '
-        - '// healing, not required '
-    rtp_msc_a_untrusted_parent_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_untrusted_parent_ips
-      type: list
-      description: List of fixed IPv4 addresses on Untrusted/access parent network for RTP MSC A.
-      entry_schema:
-        type: string
-    ssc_b_trusted_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            source_type: HEAT
-            param_name: ssc_b_trusted_ip_0
-      type: string
-      description: Fixed IPv4 address on Trusted/core network for SSC B.
-    shared_perimeta_ssc_server_group:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: shared_perimeta_ssc_server_group
-      type: string
-      description: Server group to use for these VMs
-    ssc_json_radius_timeout:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_json_radius_timeout
-      type: float
-      description: Timeout for connect requests to RADIUS server
-      constraints:
-      - in_range:
-        - 1
-        - 60
-    rtp_msc_untrusted_vips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_untrusted_vips
-      type: list
-      description: List of virtual IPv4 addresses on Untrusted/access network for RTP MSC.
-      entry_schema:
-        type: string
-    rtp_msc_json_radius_servername:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_json_radius_servername
-      type: string
-      description: IP Address or hostname of RADIUS server
-    rtp_msc_vnfcnames:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_vnfcnames
-      type: list
-      description: List of vnfc names of the RTP MSC. This is the name associated with the perimeta pair and corresponds to the VIP
-      entry_schema:
-        type: string
-    ssc_image_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_image_name
-      type: string
-      description: Glance image to use for launching SSC Perimeta instances.
-      default: ISBC_SBC_v4.0.40_SU12.qcow2
-      constraints: [
-        ]
-    perimeta_max_rtp_msc_count:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_perimeta_deployment_create
-            source_type: HEAT
-            param_name: perimeta_max_rtp_msc_count
-      type: float
-      description: Max number of RTP MSCs in a site.
-      default: 8
-      constraints:
-      - in_range:
-        - 0
-        - 20
-    trusted_net_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: trusted_net_id
-      type: string
-      description: Network ID of Trusted/core network.
-      constraints: [
-        ]
-    ntp_server_ip_addrs:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ntp_server_ip_addrs
-      type: string
-      description: NTP server IPv4 addresses, separated by commas.  These must be accessible from the management network
-      constraints:
-      - pattern: ((?:\d{1,3}\.){3}\d{1,3},)*((?:\d{1,3}\.){3}\d{1,3})
-    rtp_msc_json_radius_default:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_json_radius_default
-      type: string
-      description: Default authentication level for RADIUS users
-      constraints:
-      - valid_values:
-        - no-access
-        - read-only
-        - support
-        - restricted-admin
-        - admin
-    rtp_msc_a_vnfcnames:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_vnfcnames
-      type: list
-      description: List of vnfc names of the A of RTP MSC
-      entry_schema:
-        type: string
-    ssc_b_untrusted_v6_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            source_type: HEAT
-            param_name: ssc_b_untrusted_v6_ip_0
-      type: string
-      description: Fixed IPv6 address on Untrusted/access network for SSC B.
-    rtp_msc_b_index:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            source_type: HEAT
-            param_name: rtp_msc_b_index
-      type: float
-      description: Index of RTP MSC to instantiate / heal.
-      constraints:
-      - in_range:
-        - 0
-        - 19
-    rtp_msc_untrusted_v6_vips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_untrusted_v6_vips
-      type: list
-      description: List of virtual IPv6 addresses on Untrusted/access network for RTP MSC.
-      entry_schema:
-        type: string
-    shared_ssc_unused_net_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: shared_ssc_unused_net_id
-      type: string
-      description: Unused network ID
-    ssc_b_rf_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            source_type: HEAT
-            param_name: ssc_b_rf_ip_0
-      type: string
-      description: RF fixed IP address to use for SSC B.
-    rtp_msc_b_untrusted_parent_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            source_type: HEAT
-            param_name: rtp_msc_b_untrusted_parent_ips
-      type: list
-      description: List of fixed IPv4 addresses on Untrusted/access parent network for RTP MSC B.
-      entry_schema:
-        type: string
-    ssc_flavor_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_flavor_name
-      type: string
-      description: Flavor to use for creating SSC VM instance
-      default: gv.c8r16d160
-      constraints: [
-        ]
-    mgmt_net_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: mgmt_net_id
-      type: string
-      description: Management network ID
-      constraints: [
-        ]
-    ssc_json_radius_secret:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_json_radius_secret
-      type: string
-      description: Shared secret to use for the RADIUS Server
-    rtp_msc_a_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_names
-      type: list
-      description: List of names of VM A of RTP MSC
-      entry_schema:
-        type: string
-    shared_int_ha_net_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: shared_int_ha_net_id
-      type: string
-      description: HA network id
-      constraints: [
-        ]
-    ssc_vnfcname_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_vnfcname_0
-      type: string
-      description: Name of vnfc of SSC. This is the name associated with the perimeta pair and corresponds to the VIP
-      constraints:
-      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
-    rtp_msc_trusted_vips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_trusted_vips
-      type: list
-      description: List of virtual IPv4 addresses on Trusted/core network for RTP MSC.
-      entry_schema:
-        type: string
-    rtp_msc_json_radius_port:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_json_radius_port
-      type: float
-      description: Port to use to connect to RADIUS server
-      constraints:
-      - in_range:
-        - 0
-        - 65535
-    vf_module_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: vf_module_id
-      type: string
-      description: Unique ID for this VF Module instance
-    ssc_json_radius_port:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_json_radius_port
-      type: float
-      description: Port to use to connect to RADIUS server
-      constraints:
-      - in_range:
-        - 0
-        - 65535
-    rtp_msc_b_untrusted_v6_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            source_type: HEAT
-            param_name: rtp_msc_b_untrusted_v6_ips
-      type: list
-      description: List of fixed IPv6 addresses on Untrusted/access network for RTP MSC B.
-      entry_schema:
-        type: string
-    rtp_msc_b_mgmt_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_b_mgmt_ips
-      type: list
-      description: List of management fixed IP addresses to use for RTP MSC B.
-      entry_schema:
-        type: string
-    ssc_a_int_ha_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_int_ha_ip_0
-      type: string
-      description: HA fixed IP address to use for SSC A.
-    ssc_b_mgmt_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_b_mgmt_ip_0
-      type: string
-      description: Management fixed IP address to use for SSC B.
-    vnf_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            - base_perimeta_deployment_create
-            source_type: HEAT
-            param_name: vnf_name
-      type: string
-      description: Unique name for this VNF instance
-    rtp_msc_flavor_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_flavor_name
-      type: string
-      description: Flavor to use for creating RTP MSC VM instance
-      default: gv.c8r16d160
-      constraints: [
-        ]
-    perimeta_int_ha_net_prefix_v4:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_perimeta_deployment_create
-            source_type: HEAT
-            param_name: perimeta_int_ha_net_prefix_v4
-      type: string
-      description: IPv4 subnet prefix for internal HA network
-      default: 172.26.1.4
-    rtp_msc_b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            source_type: HEAT
-            param_name: rtp_msc_b_names
-      type: list
-      description: List of names of VM B of RTP MSC
-      entry_schema:
-        type: string
-    rtp_msc_b_untrusted_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            source_type: HEAT
-            param_name: rtp_msc_b_untrusted_ips
-      type: list
-      description: List of fixed IPv4 addresses on Untrusted/access network for RTP MSC B.
-      entry_schema:
-        type: string
-    perimeta_ssh_key:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_perimeta_deployment_create
-            source_type: HEAT
-            param_name: perimeta_ssh_key
-      type: string
-      description: SSH public key
-      default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXvSadEWp+nsz3gEAAAAAAAAAAbggQ3t06mqFIauHfUYMiKZ3EUX3jDFf/uGQoNsIZU6SNE/gl3tY4fFvO8Yzj8OY/vstHHvEadbY5aXNE6kd39ik20uRNbeZLT+pRllBwVKBSVnFqG3kBDvNWmBIenlPZzu3Ay0LYT/aDq6fZaz8Mqy8hzhpAAAAAAAAAAEmS/ESYY4UMs/aF2fVGmCLqudSjLpSsyD8lXag2dmeiT7cTdwRkgtDNTULXCPVucolVZwZF9BxXPNK++B+fL/ZY4MrXHXgZYGEElrMCFYkQFb3jQv3XQtxZ6gVByrzgGc9eiU7tkCgY2cVfb22iIs9n Generated-by-Nova
-    rtp_msc_a_index:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_index
-      type: float
-      description: Index of RTP MSC to instantiate / heal.
-      constraints:
-      - in_range:
-        - 0
-        - 19
-    rtp_msc_json_v41:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_json_v41
-      type: string
-      description: Json prefix, used to ensure that the json tags will be recognised by the server loading them
-      default: ' '
-      constraints:
-      - valid_values:
-        - ' '
-        - '// older perimeta, parameter not required '
-    shared_perimeta_rtp_msc_server_groups:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: shared_perimeta_rtp_msc_server_groups
-      type: list
-      description: Server group to use for these VMs
-      entry_schema:
-        type: string
-    rtp_msc_a_json_prefix:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_json_prefix
-      type: string
-      description: Json prefix, used to create the correct json file depending on the operation being performed
-      default: ' '
-      constraints:
-      - valid_values:
-        - ' '
-        - '// healing, not required '
-    ssc_b_int_ha_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_b_int_ha_ip_0
-      type: string
-      description: HA fixed IP address to use for SSC B.
-    rtp_msc_b_vnfcnames:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_b_vnfcnames
-      type: list
-      description: List of vnfc names of VM B of RTP MSC
-      entry_schema:
-        type: string
-    ssc_a_trusted_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_trusted_ip_0
-      type: string
-      description: Fixed IPv4 address on Trusted/core network for SSC A.
-    vnf_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: vnf_id
-      type: string
-      description: ID of VNF
-    availability_zone_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: availability_zone_0
-      type: string
-      description: Availability zone for A instances.
-    availability_zone_1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            source_type: HEAT
-            param_name: availability_zone_1
-      type: string
-      description: Availability zone for B instances.
-    perimeta_int_ha_net_prefix_len_v4:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_perimeta_deployment_create
-            source_type: HEAT
-            param_name: perimeta_int_ha_net_prefix_len_v4
-      type: float
-      description: Prefix length of subnet associated with internal HA network
-      default: 26
-      constraints:
-      - in_range:
-        - 0
-        - 31
-    ssc_a_untrusted_v6_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_untrusted_v6_ip_0
-      type: string
-      description: Fixed IPv6 address on Untrusted/access network for SSC A.
-    rtp_msc_untrusted_parent_vips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_untrusted_parent_vips
-      type: list
-      description: List of virtual IPv4 addresses on Untrusted/access parent network for RTP MSC.
-      entry_schema:
-        type: string
-    shared_int_ha_net_prefix_len_v4:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: shared_int_ha_net_prefix_len_v4
-      type: float
-      description: Prefix length of subnet associated with internal HA network
-      constraints:
-      - in_range:
-        - 0
-        - 31
-    ssc_rf_vip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_rf_vip_0
-      type: string
-      description: RF virtual IP address to use for SSC.
-    rtp_msc_a_int_ha_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_int_ha_ips
-      type: list
-      description: List of HA fixed IP addresses to use for RTP MSC A.
-      entry_schema:
-        type: string
-    shared_perimeta_keypair:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: shared_perimeta_keypair
-      type: string
-      description: Keypair to use for accessing this Perimeta instance
-    shared_int_untrusted_parent_net_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: shared_int_untrusted_parent_net_id
-      type: string
-      description: untrusted parent network id
-    ssc_a_vnfcname_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_vnfcname_0
-      type: string
-      description: vnfc name of VM A of SSC
-      constraints:
-      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
-    rtp_msc_json_radius_secret:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_json_radius_secret
-      type: string
-      description: Shared secret to use for the RADIUS Server
-    rtp_msc_b_trusted_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            source_type: HEAT
-            param_name: rtp_msc_b_trusted_ips
-      type: list
-      description: List of fixed IPv4 addresses on Trusted/core network for RTP MSC B.
-      entry_schema:
-        type: string
-    rtp_msc_a_trusted_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_trusted_ips
-      type: list
-      description: List of fixed IPv4 addresses on Trusted/core network for RTP MSC A.
-      entry_schema:
-        type: string
-    rtp_msc_image_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_image_name
-      type: string
-      description: Glance image to use for launching RTP MSC Perimeta instances.
-      default: ISBC_SBC_v4.0.40_SU12.qcow2
-      constraints: [
-        ]
-    ssc_a_mgmt_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_mgmt_ip_0
-      type: string
-      description: Management fixed IP address to use for SSC A.
-    ssc_untrusted_parent_vip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_untrusted_parent_vip_0
-      type: string
-      description: Virtual IPv4 address on Untrusted/access parent network for SSC.
-    rtp_msc_b_int_ha_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_b_int_ha_ips
-      type: list
-      description: List of HA fixed IP addresses to use for RTP MSC B.
-      entry_schema:
-        type: string
-    ssc_untrusted_v6_vip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_b
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_untrusted_v6_vip_0
-      type: string
-      description: Virtual IPv6 address on Untrusted/access network for SSC.
-    rtp_msc_a_mgmt_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_mgmt_ips
-      type: list
-      description: List of management fixed IP addresses to use for RTP MSC A.
-      entry_schema:
-        type: string
-    rtp_msc_a_untrusted_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_untrusted_ips
-      type: list
-      description: List of fixed IPv4 addresses on Untrusted/access network for RTP MSC A.
-      entry_schema:
-        type: string
-    ssc_a_rf_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_rf_ip_0
-      type: string
-      description: RF fixed IP address to use for SSC A.
-    ssc_json_use_radius_authentication:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_json_use_radius_authentication
-      type: string
-      description: Json prefix, used to indicate if user account authentication is done externally through Radius
-      constraints:
-      - valid_values:
-        - ' '
-        - '// not using Radius '
-    ssc_a_untrusted_parent_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_untrusted_parent_ip_0
-      type: string
-      description: Fixed IPv4 address on Untrusted/access parent network for SSC A.
-    perimeta_untrusted_vlan_networks:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: perimeta_untrusted_vlan_networks
-      type: list
-      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-      entry_schema:
-        type: string
-    ssc_a_untrusted_ip_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_a_untrusted_ip_0
-      type: string
-      description: Fixed IPv4 address on Untrusted/access network for SSC A.
-    rtp_msc_a_untrusted_v6_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_a_untrusted_v6_ips
-      type: list
-      description: List of fixed IPv6 addresses on Untrusted/access network for RTP MSC A.
-      entry_schema:
-        type: string
-    mgmt_net_default_gateway:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: mgmt_net_default_gateway
-      type: string
-      description: Default gateway for management network
-    rtp_msc_json_radius_timeout:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_a
-            source_type: HEAT
-            param_name: rtp_msc_json_radius_timeout
-      type: float
-      description: Timeout for connect requests to RADIUS server
-      constraints:
-      - in_range:
-        - 1
-        - 60
-    ssc_b_vnfcname_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_b_vnfcname_0
-      type: string
-      description: vnfc name of VM B of SSC
-      constraints:
-      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
-    ssc_json_v41:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_json_v41
-      type: string
-      description: Json prefix, used to ensure that the json tags will be recognised by the server loading them
-      default: ' '
-      constraints:
-      - valid_values:
-        - ' '
-        - '// older perimeta, parameter not required '
-    ssc_json_radius_default:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: ssc_json_radius_default
-      type: string
-      description: Default authentication level for RADIUS users
-      constraints:
-      - valid_values:
-        - no-access
-        - read-only
-        - support
-        - restricted-admin
-        - admin
-    shared_perimeta_sec_groups:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - module_2_perimeta_rtp_msc_b
-            - module_1_perimeta_ssc_b
-            - module_2_perimeta_rtp_msc_a
-            - module_1_perimeta_ssc_a
-            source_type: HEAT
-            param_name: shared_perimeta_sec_groups
-      type: list
-      description: List of security groups to add on all interfaces.
-      entry_schema:
-        type: string
-  node_templates:
-    perimeta_rtp_msc_a:
-      type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_a_child
-      directives:
-      - substitutable
-      properties:
-        vf_module_id:
-          get_input: vf_module_id
-        int_ha_network_plen:
-          get_input: shared_int_ha_net_prefix_len_v4
-        perimeta_config:
-          str_replace:
-            template:
-              get_artifact:
-              - SELF
-              - rtp_msc_a_template
-            params:
-              $RADIUS_SERVERNAME:
-                get_input: rtp_msc_json_radius_servername
-              $REMOTE_MGMT_IP_ADDR:
-                get_input:
-                - rtp_msc_b_mgmt_ips
-                - get_input: rtp_msc_a_index
-              $VIRT_MGMT_IP_ADDR:
-                get_input:
-                - rtp_msc_mgmt_vips
-                - get_input: rtp_msc_a_index
-              $LOCAL_MGMT_IP_ADDR:
-                get_input:
-                - rtp_msc_a_mgmt_ips
-                - get_input: rtp_msc_a_index
-              $MGMT_NETWORK_DEFAULT_GATEWAY:
-                get_input: mgmt_net_default_gateway
-              $RADIUS_DEFAULT:
-                get_input: rtp_msc_json_radius_default
-              $COMPLETION_PARAMS: ''
-              $RADIUS_PORT:
-                get_input: rtp_msc_json_radius_port
-              $NTP_SERVER_IP_ADDRS:
-                get_input: ntp_server_ip_addrs
-              $HEALING_OR_INSTANTIATION:
-                get_input: rtp_msc_a_json_prefix
-              $RADIUS_SECRET:
-                get_input: rtp_msc_json_radius_secret
-              $RADIUS_TIMEOUT:
-                get_input: rtp_msc_json_radius_timeout
-              $41ORABOVE:
-                get_input: rtp_msc_json_v41
-              $SYSTEM_NAME:
-                get_input:
-                - rtp_msc_vnfcnames
-                - get_input: rtp_msc_a_index
-              $USERADIUSAUTH:
-                get_input: rtp_msc_json_use_radius_authentication
-              $MGMT_NETWORK_PLEN:
-                get_input: mgmt_net_plen
-              $VM_NAME_A:
-                get_input:
-                - rtp_msc_a_vnfcnames
-                - get_input: rtp_msc_a_index
-              $VM_NAME_B:
-                get_input:
-                - rtp_msc_b_vnfcnames
-                - get_input: rtp_msc_a_index
-        vnf_name:
-          get_input: vnf_name
-        perimeta_untrusted_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        int_ha_net_id:
-          get_input: shared_int_ha_net_id
-        perimeta_instance_index:
-          get_input: rtp_msc_a_index
-        service_template_filter:
-          substitute_service_template: module_2_perimeta_sw_a_childServiceTemplate.yaml
-        perimeta_keypair:
-          get_input: shared_perimeta_keypair
-        perimeta_server_groups:
-          get_input: shared_perimeta_rtp_msc_server_groups
-        vnf_id:
-          get_input: vnf_id
-        availability_zone_0:
-          get_input: availability_zone_0
-        rtp_msc_mgmt_vips:
-          get_input: rtp_msc_mgmt_vips
-        perimeta_sec_groups:
-          get_input: shared_perimeta_sec_groups
-        rtp_msc_untrusted_parent_vips:
-          get_input: rtp_msc_untrusted_parent_vips
-        perimeta_untrusted_num_vlans:
-          get_input: perimeta_untrusted_num_vlans
-        rtp_msc_a_int_ha_ips:
-          get_input: rtp_msc_a_int_ha_ips
-        rtp_msc_a_untrusted_parent_ips:
-          get_input: rtp_msc_a_untrusted_parent_ips
-        rtp_msc_a_trusted_ips:
-          get_input: rtp_msc_a_trusted_ips
-        rtp_msc_untrusted_vips:
-          get_input: rtp_msc_untrusted_vips
-        trusted_net_id:
-          get_input: trusted_net_id
-        rtp_msc_b_int_ha_ips:
-          get_input: rtp_msc_b_int_ha_ips
-        rtp_msc_a_mgmt_ips:
-          get_input: rtp_msc_a_mgmt_ips
-        rtp_msc_a_untrusted_ips:
-          get_input: rtp_msc_a_untrusted_ips
-        vm_role: msc
-        rtp_msc_untrusted_v6_vips:
-          get_input: rtp_msc_untrusted_v6_vips
-        perimeta_untrusted_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        rtp_msc_a_untrusted_v6_ips:
-          get_input: rtp_msc_a_untrusted_v6_ips
-        perimeta_image_name:
-          get_input: rtp_msc_image_name
-        mgmt_net_id:
-          get_input: mgmt_net_id
-        int_untrusted_parent_net_id:
-          get_input: shared_int_untrusted_parent_net_id
-        rtp_msc_a_names:
-          get_input: rtp_msc_a_names
-        perimeta_flavor_name:
-          get_input: rtp_msc_flavor_name
-        rtp_msc_trusted_vips:
-          get_input: rtp_msc_trusted_vips
-      requirements:
-      - link_perimeta_rtp_msc_a_ha_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_internal_ha_net_0
-          relationship: tosca.relationships.network.LinksTo
-      - link_perimeta_rtp_msc_a_untrusted_parent_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_int_untrusted_parent_net_0
-          relationship: tosca.relationships.network.LinksTo
-      artifacts:
-        rtp_msc_a_template:
-          type: tosca.artifacts.Deployment
-          file: ../Artifacts/rtp_msc_a_template.json
-    shared_perimeta_internal_ha_net_0:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_enable_dhcp: false
-            network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: perimeta_int_ha_net_prefix_len_v4
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: perimeta_int_ha_net_prefix_v4
-        network_name:
-          str_replace:
-            template: $VF_NAME_int_ha_net_0
-            params:
-              $VF_NAME:
-                get_input: vnf_name
-        network_ipam_refs:
-        - UNSUPPORTED_RESOURCE_perimeta_internal_ha_ipam_net_0
-    perimeta_rtp_msc_b:
-      type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_b_child
-      directives:
-      - substitutable
-      properties:
-        vf_module_id:
-          get_input: vf_module_id
-        int_ha_network_plen:
-          get_input: shared_int_ha_net_prefix_len_v4
-        rtp_msc_b_untrusted_v6_ips:
-          get_input: rtp_msc_b_untrusted_v6_ips
-        rtp_msc_b_mgmt_ips:
-          get_input: rtp_msc_b_mgmt_ips
-        vnf_name:
-          get_input: vnf_name
-        perimeta_untrusted_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        rtp_msc_b_names:
-          get_input: rtp_msc_b_names
-        rtp_msc_b_untrusted_ips:
-          get_input: rtp_msc_b_untrusted_ips
-        int_ha_net_id:
-          get_input: shared_int_ha_net_id
-        perimeta_instance_index:
-          get_input: rtp_msc_b_index
-        service_template_filter:
-          substitute_service_template: module_2_perimeta_sw_b_childServiceTemplate.yaml
-        perimeta_keypair:
-          get_input: shared_perimeta_keypair
-        perimeta_server_groups:
-          get_input: shared_perimeta_rtp_msc_server_groups
-        vnf_id:
-          get_input: vnf_id
-        availability_zone_1:
-          get_input: availability_zone_1
-        rtp_msc_mgmt_vips:
-          get_input: rtp_msc_mgmt_vips
-        perimeta_sec_groups:
-          get_input: shared_perimeta_sec_groups
-        rtp_msc_untrusted_parent_vips:
-          get_input: rtp_msc_untrusted_parent_vips
-        perimeta_untrusted_num_vlans:
-          get_input: perimeta_untrusted_num_vlans
-        rtp_msc_a_int_ha_ips:
-          get_input: rtp_msc_a_int_ha_ips
-        rtp_msc_b_trusted_ips:
-          get_input: rtp_msc_b_trusted_ips
-        rtp_msc_untrusted_vips:
-          get_input: rtp_msc_untrusted_vips
-        trusted_net_id:
-          get_input: trusted_net_id
-        rtp_msc_b_int_ha_ips:
-          get_input: rtp_msc_b_int_ha_ips
-        vm_role: msc
-        rtp_msc_untrusted_v6_vips:
-          get_input: rtp_msc_untrusted_v6_vips
-        perimeta_untrusted_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        perimeta_image_name:
-          get_input: rtp_msc_image_name
-        rtp_msc_b_untrusted_parent_ips:
-          get_input: rtp_msc_b_untrusted_parent_ips
-        mgmt_net_id:
-          get_input: mgmt_net_id
-        int_untrusted_parent_net_id:
-          get_input: shared_int_untrusted_parent_net_id
-        perimeta_flavor_name:
-          get_input: rtp_msc_flavor_name
-        rtp_msc_trusted_vips:
-          get_input: rtp_msc_trusted_vips
-      requirements:
-      - link_perimeta_rtp_msc_b_ha_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_internal_ha_net_0
-          relationship: tosca.relationships.network.LinksTo
-      - link_perimeta_rtp_msc_b_untrusted_parent_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_int_untrusted_parent_net_0
-          relationship: tosca.relationships.network.LinksTo
-    perimeta_ssc_a:
-      type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_a_child
-      directives:
-      - substitutable
-      properties:
-        vf_module_id:
-          get_input: vf_module_id
-        ssc_a_name_0:
-          get_input: ssc_a_name_0
-        int_ha_network_plen:
-          get_input: shared_int_ha_net_prefix_len_v4
-        perimeta_server_group:
-          get_input: shared_perimeta_ssc_server_group
-        unused_port_net_id:
-          get_input: shared_ssc_unused_net_id
-        perimeta_config:
-          str_replace:
-            template:
-              get_artifact:
-              - SELF
-              - ssc_a_template
-            params:
-              $RADIUS_SERVERNAME:
-                get_input: ssc_json_radius_servername
-              $REMOTE_MGMT_IP_ADDR:
-                get_input: ssc_b_mgmt_ip_0
-              $VIRT_MGMT_IP_ADDR:
-                get_input: ssc_mgmt_vip_0
-              $LOCAL_MGMT_IP_ADDR:
-                get_input: ssc_a_mgmt_ip_0
-              $MGMT_NETWORK_DEFAULT_GATEWAY:
-                get_input: mgmt_net_default_gateway
-              $RADIUS_DEFAULT:
-                get_input: ssc_json_radius_default
-              $COMPLETION_PARAMS: ''
-              $RADIUS_PORT:
-                get_input: ssc_json_radius_port
-              $NTP_SERVER_IP_ADDRS:
-                get_input: ntp_server_ip_addrs
-              $HEALING_OR_INSTANTIATION:
-                get_input: ssc_a_json_prefix
-              $RADIUS_SECRET:
-                get_input: ssc_json_radius_secret
-              $RADIUS_TIMEOUT:
-                get_input: ssc_json_radius_timeout
-              $41ORABOVE:
-                get_input: ssc_json_v41
-              $SYSTEM_NAME:
-                get_input: ssc_vnfcname_0
-              $USERADIUSAUTH:
-                get_input: ssc_json_use_radius_authentication
-              $MGMT_NETWORK_PLEN:
-                get_input: mgmt_net_plen
-              $VM_NAME_A:
-                get_input: ssc_a_vnfcname_0
-              $VM_NAME_B:
-                get_input: ssc_b_vnfcname_0
-        ssc_a_int_ha_ip_0:
-          get_input: ssc_a_int_ha_ip_0
-        vnf_name:
-          get_input: vnf_name
-        perimeta_untrusted_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        int_ha_net_id:
-          get_input: shared_int_ha_net_id
-        ssc_b_int_ha_ip_0:
-          get_input: ssc_b_int_ha_ip_0
-        ssc_mgmt_vip_0:
-          get_input: ssc_mgmt_vip_0
-        service_template_filter:
-          substitute_service_template: module_1_perimeta_swmu_a_childServiceTemplate.yaml
-        ssc_a_trusted_ip_0:
-          get_input: ssc_a_trusted_ip_0
-        perimeta_keypair:
-          get_input: shared_perimeta_keypair
-        vnf_id:
-          get_input: vnf_id
-        availability_zone_0:
-          get_input: availability_zone_0
-        ssc_trusted_vip_0:
-          get_input: ssc_trusted_vip_0
-        ssc_untrusted_vip_0:
-          get_input: ssc_untrusted_vip_0
-        perimeta_sec_groups:
-          get_input: shared_perimeta_sec_groups
-        ssc_a_untrusted_v6_ip_0:
-          get_input: ssc_a_untrusted_v6_ip_0
-        perimeta_untrusted_num_vlans:
-          get_input: perimeta_untrusted_num_vlans
-        ssc_rf_vip_0:
-          get_input: ssc_rf_vip_0
-        ssc_a_mgmt_ip_0:
-          get_input: ssc_a_mgmt_ip_0
-        trusted_net_id:
-          get_input: trusted_net_id
-        ssc_untrusted_parent_vip_0:
-          get_input: ssc_untrusted_parent_vip_0
-        ssc_untrusted_v6_vip_0:
-          get_input: ssc_untrusted_v6_vip_0
-        ssc_a_rf_ip_0:
-          get_input: ssc_a_rf_ip_0
-        vm_role: ssc
-        ssc_a_untrusted_parent_ip_0:
-          get_input: ssc_a_untrusted_parent_ip_0
-        perimeta_untrusted_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        ssc_a_untrusted_ip_0:
-          get_input: ssc_a_untrusted_ip_0
-        perimeta_image_name:
-          get_input: ssc_image_name
-        mgmt_net_id:
-          get_input: mgmt_net_id
-        int_untrusted_parent_net_id:
-          get_input: shared_int_untrusted_parent_net_id
-        perimeta_flavor_name:
-          get_input: ssc_flavor_name
-      requirements:
-      - link_perimeta_ssc_a_ha_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_internal_ha_net_0
-          relationship: tosca.relationships.network.LinksTo
-      - link_perimeta_ssc_a_untrusted_parent_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_int_untrusted_parent_net_0
-          relationship: tosca.relationships.network.LinksTo
-      - link_perimeta_ssc_a_unused_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_unused_net_0
-          relationship: tosca.relationships.network.LinksTo
-      artifacts:
-        ssc_a_template:
-          type: tosca.artifacts.Deployment
-          file: ../Artifacts/ssc_a_template.json
-    shared_perimeta_rsg:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name:
-          str_replace:
-            template: $VNF_NAME_shared_perimeta_RSG
-            params:
-              $VNF_NAME:
-                get_input: vnf_name
-        description: Security Group for Perimeta networks
-        rules:
-        - protocol: tcp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 1
-        - protocol: tcp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-        - protocol: tcp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 1
-    shared_perimeta_unused_net_0:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        dhcp_enabled: false
-        ip_version: 4
-        network_name:
-          str_replace:
-            template: $VF_NAME_int_unused_net
-            params:
-              $VF_NAME:
-                get_input: vnf_name
-        subnets:
-          shared_perimeta_unused_net_0_subnet:
-            enable_dhcp: false
-            ip_version: 4
-            cidr: 10.0.0.0/29
-            gateway_ip: ''
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: shared_perimeta_unused_net_0
-          relationship: tosca.relationships.DependsOn
-    perimeta_ssc_b:
-      type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_b_child
-      directives:
-      - substitutable
-      properties:
-        vf_module_id:
-          get_input: vf_module_id
-        int_ha_network_plen:
-          get_input: shared_int_ha_net_prefix_len_v4
-        perimeta_server_group:
-          get_input: shared_perimeta_ssc_server_group
-        unused_port_net_id:
-          get_input: shared_ssc_unused_net_id
-        ssc_b_name_0:
-          get_input: ssc_b_name_0
-        ssc_a_int_ha_ip_0:
-          get_input: ssc_a_int_ha_ip_0
-        ssc_b_untrusted_ip_0:
-          get_input: ssc_b_untrusted_ip_0
-        ssc_b_mgmt_ip_0:
-          get_input: ssc_b_mgmt_ip_0
-        ssc_b_untrusted_parent_ip_0:
-          get_input: ssc_b_untrusted_parent_ip_0
-        vnf_name:
-          get_input: vnf_name
-        perimeta_untrusted_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        int_ha_net_id:
-          get_input: shared_int_ha_net_id
-        ssc_b_int_ha_ip_0:
-          get_input: ssc_b_int_ha_ip_0
-        ssc_mgmt_vip_0:
-          get_input: ssc_mgmt_vip_0
-        service_template_filter:
-          substitute_service_template: module_1_perimeta_swmu_b_childServiceTemplate.yaml
-        perimeta_keypair:
-          get_input: shared_perimeta_keypair
-        vnf_id:
-          get_input: vnf_id
-        availability_zone_1:
-          get_input: availability_zone_1
-        ssc_trusted_vip_0:
-          get_input: ssc_trusted_vip_0
-        ssc_untrusted_vip_0:
-          get_input: ssc_untrusted_vip_0
-        perimeta_sec_groups:
-          get_input: shared_perimeta_sec_groups
-        perimeta_untrusted_num_vlans:
-          get_input: perimeta_untrusted_num_vlans
-        ssc_rf_vip_0:
-          get_input: ssc_rf_vip_0
-        ssc_b_trusted_ip_0:
-          get_input: ssc_b_trusted_ip_0
-        trusted_net_id:
-          get_input: trusted_net_id
-        ssc_untrusted_parent_vip_0:
-          get_input: ssc_untrusted_parent_vip_0
-        ssc_untrusted_v6_vip_0:
-          get_input: ssc_untrusted_v6_vip_0
-        ssc_b_untrusted_v6_ip_0:
-          get_input: ssc_b_untrusted_v6_ip_0
-        vm_role: ssc
-        perimeta_untrusted_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        perimeta_image_name:
-          get_input: ssc_image_name
-        ssc_b_rf_ip_0:
-          get_input: ssc_b_rf_ip_0
-        mgmt_net_id:
-          get_input: mgmt_net_id
-        int_untrusted_parent_net_id:
-          get_input: shared_int_untrusted_parent_net_id
-        perimeta_flavor_name:
-          get_input: ssc_flavor_name
-      requirements:
-      - link_perimeta_ssc_b_untrusted_parent_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_int_untrusted_parent_net_0
-          relationship: tosca.relationships.network.LinksTo
-      - link_perimeta_ssc_b_unused_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_unused_net_0
-          relationship: tosca.relationships.network.LinksTo
-      - link_perimeta_ssc_b_ha_0_port:
-          capability: tosca.capabilities.network.Linkable
-          node: shared_perimeta_internal_ha_net_0
-          relationship: tosca.relationships.network.LinksTo
-    shared_perimeta_int_untrusted_parent_net_0:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        dhcp_enabled: false
-        ip_version: 4
-        network_name:
-          str_replace:
-            template: $VF_NAME_int_untrusted_parent_net
-            params:
-              $VF_NAME:
-                get_input: vnf_name
-        subnets:
-          shared_perimeta_int_untrusted_parent_net_0_subnet:
-            enable_dhcp: false
-            ip_version: 4
-            cidr: 11.0.0.0/24
-            gateway_ip: ''
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: shared_perimeta_int_untrusted_parent_net_0
-          relationship: tosca.relationships.DependsOn
-  groups:
-    base_perimeta_deployment_create_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/base_perimeta_deployment_create.yaml
-        description: |
-          HOT template to instantiate base shared resources for a Perimeta deployment
-      members:
-      - shared_perimeta_internal_ha_net_0
-      - shared_perimeta_rsg
-      - shared_perimeta_unused_net_0
-      - shared_perimeta_int_untrusted_parent_net_0
-    module_2_perimeta_rtp_msc_a_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_2_perimeta_rtp_msc_a.yaml
-        description: |
-          HOT template to instantiate an A side Perimeta RTP MSC and optionally partner it with the corresponding B side
-      members:
-      - perimeta_rtp_msc_a
-    module_1_perimeta_ssc_b_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_1_perimeta_ssc_b.yaml
-        description: "HOT template to instantiate an B side Perimeta SSC \n"
-      members:
-      - perimeta_ssc_b
-    shared_perimeta_ssc_server_gp_group:
-      type: tosca.groups.Root
-      members: [
-        ]
-    module_2_perimeta_rtp_msc_b_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_2_perimeta_rtp_msc_b.yaml
-        description: "HOT template to instantiate an B side Perimeta RTP MSC \n"
-      members:
-      - perimeta_rtp_msc_b
-    module_1_perimeta_ssc_a_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_1_perimeta_ssc_a.yaml
-        description: |
-          HOT template to instantiate an A side Perimeta SSC and optionally partner it with the corresponding B side
-      members:
-      - perimeta_ssc_a
-  outputs:
-    shared_int_ha_net_prefix_len_v4:
-      description: HA internal network IPv4 prefix length
-      value:
-        get_input: perimeta_int_ha_net_prefix_len_v4
-    shared_perimeta_keypair:
-      description: SSH keypair for deployment
-      value: UNSUPPORTED_RESOURCE_shared_perimeta_keypair
-    shared_perimeta_rtp_msc_server_groups:
-      description: Perimeta RTP MSC Server groups
-      value:
-        list_join:
-        - ','
-        - get_attr:
-          - shared_perimeta_rtp_msc_server_gps
-          - refs
-  policies:
-    shared_perimeta_ssc_server_gp_policy:
-      type: org.openecomp.policies.placement.Antilocate
-      properties:
-        name:
-          str_replace:
-            template: $VNF_NAME_shared_ssc_RSG_name_0
-            params:
-              $VNF_NAME:
-                get_input: vnf_name
-        container_type: host
-      targets:
-      - shared_perimeta_ssc_server_gp_group
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    ssc_a_name_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_name_0\r
+      type: string\r
+      description: Name of VM A of SSC\r
+      constraints:\r
+      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,29}$'\r
+    mgmt_net_plen:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: mgmt_net_plen\r
+      type: float\r
+      description: Management network prefix length\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 32\r
+    ssc_b_name_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            source_type: HEAT\r
+            param_name: ssc_b_name_0\r
+      type: string\r
+      description: Name of VM B of SSC\r
+      constraints:\r
+      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,29}$'\r
+    ssc_b_untrusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            source_type: HEAT\r
+            param_name: ssc_b_untrusted_ip_0\r
+      type: string\r
+      description: Fixed IPv4 address on Untrusted/access network for SSC B.\r
+    ssc_b_untrusted_parent_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            source_type: HEAT\r
+            param_name: ssc_b_untrusted_parent_ip_0\r
+      type: string\r
+      description: Fixed IPv4 address on Untrusted/access parent network for SSC B.\r
+    perimeta_untrusted_vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: perimeta_untrusted_vlan_ids\r
+      type: list\r
+      description: List of VLAN IDs to use on the untrusted/access network\r
+      entry_schema:\r
+        type: string\r
+    ssc_json_radius_servername:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_json_radius_servername\r
+      type: string\r
+      description: IP Address or hostname of RADIUS server\r
+    ssc_mgmt_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_mgmt_vip_0\r
+      type: string\r
+      description: Management virtual IP address to use for SSC.\r
+    rtp_msc_json_use_radius_authentication:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_json_use_radius_authentication\r
+      type: string\r
+      description: Json prefix, used to indicate if user account authentication is done externally through Radius\r
+      constraints:\r
+      - valid_values:\r
+        - ' '\r
+        - '// not using Radius '\r
+    ssc_trusted_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_trusted_vip_0\r
+      type: string\r
+      description: Virtual IPv4 address on Trusted/core network for SSC.\r
+    ssc_untrusted_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_untrusted_vip_0\r
+      type: string\r
+      description: Virtual IPv4 address on Untrusted/access network for SSC.\r
+    perimeta_untrusted_num_vlans:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: perimeta_untrusted_num_vlans\r
+      type: float\r
+      description: number of VLANs to connect to the untrusted/access interface\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 1001\r
+    rtp_msc_mgmt_vips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_mgmt_vips\r
+      type: list\r
+      description: List of management virtual IP addresses to use for RTP MSC.\r
+      entry_schema:\r
+        type: string\r
+    ssc_a_json_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_json_prefix\r
+      type: string\r
+      description: Json prefix, used to create the correct json file depending on the operation being performed\r
+      default: ' '\r
+      constraints:\r
+      - valid_values:\r
+        - ' '\r
+        - '// healing, not required '\r
+    rtp_msc_a_untrusted_parent_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_untrusted_parent_ips\r
+      type: list\r
+      description: List of fixed IPv4 addresses on Untrusted/access parent network for RTP MSC A.\r
+      entry_schema:\r
+        type: string\r
+    ssc_b_trusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            source_type: HEAT\r
+            param_name: ssc_b_trusted_ip_0\r
+      type: string\r
+      description: Fixed IPv4 address on Trusted/core network for SSC B.\r
+    shared_perimeta_ssc_server_group:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: shared_perimeta_ssc_server_group\r
+      type: string\r
+      description: Server group to use for these VMs\r
+    ssc_json_radius_timeout:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_json_radius_timeout\r
+      type: float\r
+      description: Timeout for connect requests to RADIUS server\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 60\r
+    rtp_msc_untrusted_vips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_untrusted_vips\r
+      type: list\r
+      description: List of virtual IPv4 addresses on Untrusted/access network for RTP MSC.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_json_radius_servername:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_json_radius_servername\r
+      type: string\r
+      description: IP Address or hostname of RADIUS server\r
+    rtp_msc_vnfcnames:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_vnfcnames\r
+      type: list\r
+      description: List of vnfc names of the RTP MSC. This is the name associated with the perimeta pair and corresponds to the VIP\r
+      entry_schema:\r
+        type: string\r
+    ssc_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_image_name\r
+      type: string\r
+      description: Glance image to use for launching SSC Perimeta instances.\r
+      default: ISBC_SBC_v4.0.40_SU12.qcow2\r
+      constraints: [\r
+        ]\r
+    perimeta_max_rtp_msc_count:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_perimeta_deployment_create\r
+            source_type: HEAT\r
+            param_name: perimeta_max_rtp_msc_count\r
+      type: float\r
+      description: Max number of RTP MSCs in a site.\r
+      default: 8\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 20\r
+    trusted_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: trusted_net_id\r
+      type: string\r
+      description: Network ID of Trusted/core network.\r
+      constraints: [\r
+        ]\r
+    ntp_server_ip_addrs:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ntp_server_ip_addrs\r
+      type: string\r
+      description: NTP server IPv4 addresses, separated by commas.  These must be accessible from the management network\r
+      constraints:\r
+      - pattern: ((?:\d{1,3}\.){3}\d{1,3},)*((?:\d{1,3}\.){3}\d{1,3})\r
+    rtp_msc_json_radius_default:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_json_radius_default\r
+      type: string\r
+      description: Default authentication level for RADIUS users\r
+      constraints:\r
+      - valid_values:\r
+        - no-access\r
+        - read-only\r
+        - support\r
+        - restricted-admin\r
+        - admin\r
+    rtp_msc_a_vnfcnames:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_vnfcnames\r
+      type: list\r
+      description: List of vnfc names of the A of RTP MSC\r
+      entry_schema:\r
+        type: string\r
+    ssc_b_untrusted_v6_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            source_type: HEAT\r
+            param_name: ssc_b_untrusted_v6_ip_0\r
+      type: string\r
+      description: Fixed IPv6 address on Untrusted/access network for SSC B.\r
+    rtp_msc_b_index:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_index\r
+      type: float\r
+      description: Index of RTP MSC to instantiate / heal.\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 19\r
+    rtp_msc_untrusted_v6_vips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_untrusted_v6_vips\r
+      type: list\r
+      description: List of virtual IPv6 addresses on Untrusted/access network for RTP MSC.\r
+      entry_schema:\r
+        type: string\r
+    shared_ssc_unused_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: shared_ssc_unused_net_id\r
+      type: string\r
+      description: Unused network ID\r
+    ssc_b_rf_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            source_type: HEAT\r
+            param_name: ssc_b_rf_ip_0\r
+      type: string\r
+      description: RF fixed IP address to use for SSC B.\r
+    rtp_msc_b_untrusted_parent_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_untrusted_parent_ips\r
+      type: list\r
+      description: List of fixed IPv4 addresses on Untrusted/access parent network for RTP MSC B.\r
+      entry_schema:\r
+        type: string\r
+    ssc_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_flavor_name\r
+      type: string\r
+      description: Flavor to use for creating SSC VM instance\r
+      default: gv.c8r16d160\r
+      constraints: [\r
+        ]\r
+    mgmt_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: mgmt_net_id\r
+      type: string\r
+      description: Management network ID\r
+      constraints: [\r
+        ]\r
+    ssc_json_radius_secret:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_json_radius_secret\r
+      type: string\r
+      description: Shared secret to use for the RADIUS Server\r
+    rtp_msc_a_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_names\r
+      type: list\r
+      description: List of names of VM A of RTP MSC\r
+      entry_schema:\r
+        type: string\r
+    shared_int_ha_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: shared_int_ha_net_id\r
+      type: string\r
+      description: HA network id\r
+      constraints: [\r
+        ]\r
+    ssc_vnfcname_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_vnfcname_0\r
+      type: string\r
+      description: Name of vnfc of SSC. This is the name associated with the perimeta pair and corresponds to the VIP\r
+      constraints:\r
+      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'\r
+    rtp_msc_trusted_vips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_trusted_vips\r
+      type: list\r
+      description: List of virtual IPv4 addresses on Trusted/core network for RTP MSC.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_json_radius_port:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_json_radius_port\r
+      type: float\r
+      description: Port to use to connect to RADIUS server\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 65535\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF Module instance\r
+    ssc_json_radius_port:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_json_radius_port\r
+      type: float\r
+      description: Port to use to connect to RADIUS server\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 65535\r
+    rtp_msc_b_untrusted_v6_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_untrusted_v6_ips\r
+      type: list\r
+      description: List of fixed IPv6 addresses on Untrusted/access network for RTP MSC B.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_b_mgmt_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_mgmt_ips\r
+      type: list\r
+      description: List of management fixed IP addresses to use for RTP MSC B.\r
+      entry_schema:\r
+        type: string\r
+    ssc_a_int_ha_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_int_ha_ip_0\r
+      type: string\r
+      description: HA fixed IP address to use for SSC A.\r
+    ssc_b_mgmt_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_b_mgmt_ip_0\r
+      type: string\r
+      description: Management fixed IP address to use for SSC B.\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            - base_perimeta_deployment_create\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VNF instance\r
+    rtp_msc_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_flavor_name\r
+      type: string\r
+      description: Flavor to use for creating RTP MSC VM instance\r
+      default: gv.c8r16d160\r
+      constraints: [\r
+        ]\r
+    perimeta_int_ha_net_prefix_v4:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_perimeta_deployment_create\r
+            source_type: HEAT\r
+            param_name: perimeta_int_ha_net_prefix_v4\r
+      type: string\r
+      description: IPv4 subnet prefix for internal HA network\r
+      default: 172.26.1.4\r
+    rtp_msc_b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_names\r
+      type: list\r
+      description: List of names of VM B of RTP MSC\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_b_untrusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_untrusted_ips\r
+      type: list\r
+      description: List of fixed IPv4 addresses on Untrusted/access network for RTP MSC B.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_ssh_key:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_perimeta_deployment_create\r
+            source_type: HEAT\r
+            param_name: perimeta_ssh_key\r
+      type: string\r
+      description: SSH public key\r
+      default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXvSadEWp+nsz3gEAAAAAAAAAAbggQ3t06mqFIauHfUYMiKZ3EUX3jDFf/uGQoNsIZU6SNE/gl3tY4fFvO8Yzj8OY/vstHHvEadbY5aXNE6kd39ik20uRNbeZLT+pRllBwVKBSVnFqG3kBDvNWmBIenlPZzu3Ay0LYT/aDq6fZaz8Mqy8hzhpAAAAAAAAAAEmS/ESYY4UMs/aF2fVGmCLqudSjLpSsyD8lXag2dmeiT7cTdwRkgtDNTULXCPVucolVZwZF9BxXPNK++B+fL/ZY4MrXHXgZYGEElrMCFYkQFb3jQv3XQtxZ6gVByrzgGc9eiU7tkCgY2cVfb22iIs9n Generated-by-Nova\r
+    rtp_msc_a_index:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_index\r
+      type: float\r
+      description: Index of RTP MSC to instantiate / heal.\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 19\r
+    rtp_msc_json_v41:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_json_v41\r
+      type: string\r
+      description: Json prefix, used to ensure that the json tags will be recognised by the server loading them\r
+      default: ' '\r
+      constraints:\r
+      - valid_values:\r
+        - ' '\r
+        - '// older perimeta, parameter not required '\r
+    shared_perimeta_rtp_msc_server_groups:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: shared_perimeta_rtp_msc_server_groups\r
+      type: list\r
+      description: Server group to use for these VMs\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_json_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_json_prefix\r
+      type: string\r
+      description: Json prefix, used to create the correct json file depending on the operation being performed\r
+      default: ' '\r
+      constraints:\r
+      - valid_values:\r
+        - ' '\r
+        - '// healing, not required '\r
+    ssc_b_int_ha_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_b_int_ha_ip_0\r
+      type: string\r
+      description: HA fixed IP address to use for SSC B.\r
+    rtp_msc_b_vnfcnames:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_vnfcnames\r
+      type: list\r
+      description: List of vnfc names of VM B of RTP MSC\r
+      entry_schema:\r
+        type: string\r
+    ssc_a_trusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_trusted_ip_0\r
+      type: string\r
+      description: Fixed IPv4 address on Trusted/core network for SSC A.\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: ID of VNF\r
+    availability_zone_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: availability_zone_0\r
+      type: string\r
+      description: Availability zone for A instances.\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: Availability zone for B instances.\r
+    perimeta_int_ha_net_prefix_len_v4:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_perimeta_deployment_create\r
+            source_type: HEAT\r
+            param_name: perimeta_int_ha_net_prefix_len_v4\r
+      type: float\r
+      description: Prefix length of subnet associated with internal HA network\r
+      default: 26\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 31\r
+    ssc_a_untrusted_v6_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_untrusted_v6_ip_0\r
+      type: string\r
+      description: Fixed IPv6 address on Untrusted/access network for SSC A.\r
+    rtp_msc_untrusted_parent_vips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_untrusted_parent_vips\r
+      type: list\r
+      description: List of virtual IPv4 addresses on Untrusted/access parent network for RTP MSC.\r
+      entry_schema:\r
+        type: string\r
+    shared_int_ha_net_prefix_len_v4:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: shared_int_ha_net_prefix_len_v4\r
+      type: float\r
+      description: Prefix length of subnet associated with internal HA network\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 31\r
+    ssc_rf_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_rf_vip_0\r
+      type: string\r
+      description: RF virtual IP address to use for SSC.\r
+    rtp_msc_a_int_ha_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_int_ha_ips\r
+      type: list\r
+      description: List of HA fixed IP addresses to use for RTP MSC A.\r
+      entry_schema:\r
+        type: string\r
+    shared_perimeta_keypair:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: shared_perimeta_keypair\r
+      type: string\r
+      description: Keypair to use for accessing this Perimeta instance\r
+    shared_int_untrusted_parent_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: shared_int_untrusted_parent_net_id\r
+      type: string\r
+      description: untrusted parent network id\r
+    ssc_a_vnfcname_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_vnfcname_0\r
+      type: string\r
+      description: vnfc name of VM A of SSC\r
+      constraints:\r
+      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'\r
+    rtp_msc_json_radius_secret:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_json_radius_secret\r
+      type: string\r
+      description: Shared secret to use for the RADIUS Server\r
+    rtp_msc_b_trusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_trusted_ips\r
+      type: list\r
+      description: List of fixed IPv4 addresses on Trusted/core network for RTP MSC B.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_trusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_trusted_ips\r
+      type: list\r
+      description: List of fixed IPv4 addresses on Trusted/core network for RTP MSC A.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_image_name\r
+      type: string\r
+      description: Glance image to use for launching RTP MSC Perimeta instances.\r
+      default: ISBC_SBC_v4.0.40_SU12.qcow2\r
+      constraints: [\r
+        ]\r
+    ssc_a_mgmt_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_mgmt_ip_0\r
+      type: string\r
+      description: Management fixed IP address to use for SSC A.\r
+    ssc_untrusted_parent_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_untrusted_parent_vip_0\r
+      type: string\r
+      description: Virtual IPv4 address on Untrusted/access parent network for SSC.\r
+    rtp_msc_b_int_ha_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_b_int_ha_ips\r
+      type: list\r
+      description: List of HA fixed IP addresses to use for RTP MSC B.\r
+      entry_schema:\r
+        type: string\r
+    ssc_untrusted_v6_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_b\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_untrusted_v6_vip_0\r
+      type: string\r
+      description: Virtual IPv6 address on Untrusted/access network for SSC.\r
+    rtp_msc_a_mgmt_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_mgmt_ips\r
+      type: list\r
+      description: List of management fixed IP addresses to use for RTP MSC A.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_untrusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_untrusted_ips\r
+      type: list\r
+      description: List of fixed IPv4 addresses on Untrusted/access network for RTP MSC A.\r
+      entry_schema:\r
+        type: string\r
+    ssc_a_rf_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_rf_ip_0\r
+      type: string\r
+      description: RF fixed IP address to use for SSC A.\r
+    ssc_json_use_radius_authentication:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_json_use_radius_authentication\r
+      type: string\r
+      description: Json prefix, used to indicate if user account authentication is done externally through Radius\r
+      constraints:\r
+      - valid_values:\r
+        - ' '\r
+        - '// not using Radius '\r
+    ssc_a_untrusted_parent_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_untrusted_parent_ip_0\r
+      type: string\r
+      description: Fixed IPv4 address on Untrusted/access parent network for SSC A.\r
+    perimeta_untrusted_vlan_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: perimeta_untrusted_vlan_networks\r
+      type: list\r
+      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+      entry_schema:\r
+        type: string\r
+    ssc_a_untrusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_a_untrusted_ip_0\r
+      type: string\r
+      description: Fixed IPv4 address on Untrusted/access network for SSC A.\r
+    rtp_msc_a_untrusted_v6_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_a_untrusted_v6_ips\r
+      type: list\r
+      description: List of fixed IPv6 addresses on Untrusted/access network for RTP MSC A.\r
+      entry_schema:\r
+        type: string\r
+    mgmt_net_default_gateway:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: mgmt_net_default_gateway\r
+      type: string\r
+      description: Default gateway for management network\r
+    rtp_msc_json_radius_timeout:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_a\r
+            source_type: HEAT\r
+            param_name: rtp_msc_json_radius_timeout\r
+      type: float\r
+      description: Timeout for connect requests to RADIUS server\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 60\r
+    ssc_b_vnfcname_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_b_vnfcname_0\r
+      type: string\r
+      description: vnfc name of VM B of SSC\r
+      constraints:\r
+      - pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'\r
+    ssc_json_v41:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_json_v41\r
+      type: string\r
+      description: Json prefix, used to ensure that the json tags will be recognised by the server loading them\r
+      default: ' '\r
+      constraints:\r
+      - valid_values:\r
+        - ' '\r
+        - '// older perimeta, parameter not required '\r
+    ssc_json_radius_default:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: ssc_json_radius_default\r
+      type: string\r
+      description: Default authentication level for RADIUS users\r
+      constraints:\r
+      - valid_values:\r
+        - no-access\r
+        - read-only\r
+        - support\r
+        - restricted-admin\r
+        - admin\r
+    shared_perimeta_sec_groups:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - module_2_perimeta_rtp_msc_b\r
+            - module_1_perimeta_ssc_b\r
+            - module_2_perimeta_rtp_msc_a\r
+            - module_1_perimeta_ssc_a\r
+            source_type: HEAT\r
+            param_name: shared_perimeta_sec_groups\r
+      type: list\r
+      description: List of security groups to add on all interfaces.\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    perimeta_rtp_msc_a:\r
+      type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_a_child\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vf_module_id:\r
+          get_input: vf_module_id\r
+        int_ha_network_plen:\r
+          get_input: shared_int_ha_net_prefix_len_v4\r
+        perimeta_config:\r
+          str_replace:\r
+            template:\r
+              get_artifact:\r
+              - SELF\r
+              - rtp_msc_a_template\r
+            params:\r
+              $RADIUS_SERVERNAME:\r
+                get_input: rtp_msc_json_radius_servername\r
+              $REMOTE_MGMT_IP_ADDR:\r
+                get_input:\r
+                - rtp_msc_b_mgmt_ips\r
+                - get_input: rtp_msc_a_index\r
+              $VIRT_MGMT_IP_ADDR:\r
+                get_input:\r
+                - rtp_msc_mgmt_vips\r
+                - get_input: rtp_msc_a_index\r
+              $LOCAL_MGMT_IP_ADDR:\r
+                get_input:\r
+                - rtp_msc_a_mgmt_ips\r
+                - get_input: rtp_msc_a_index\r
+              $MGMT_NETWORK_DEFAULT_GATEWAY:\r
+                get_input: mgmt_net_default_gateway\r
+              $RADIUS_DEFAULT:\r
+                get_input: rtp_msc_json_radius_default\r
+              $COMPLETION_PARAMS: ''\r
+              $RADIUS_PORT:\r
+                get_input: rtp_msc_json_radius_port\r
+              $NTP_SERVER_IP_ADDRS:\r
+                get_input: ntp_server_ip_addrs\r
+              $HEALING_OR_INSTANTIATION:\r
+                get_input: rtp_msc_a_json_prefix\r
+              $RADIUS_SECRET:\r
+                get_input: rtp_msc_json_radius_secret\r
+              $RADIUS_TIMEOUT:\r
+                get_input: rtp_msc_json_radius_timeout\r
+              $41ORABOVE:\r
+                get_input: rtp_msc_json_v41\r
+              $SYSTEM_NAME:\r
+                get_input:\r
+                - rtp_msc_vnfcnames\r
+                - get_input: rtp_msc_a_index\r
+              $USERADIUSAUTH:\r
+                get_input: rtp_msc_json_use_radius_authentication\r
+              $MGMT_NETWORK_PLEN:\r
+                get_input: mgmt_net_plen\r
+              $VM_NAME_A:\r
+                get_input:\r
+                - rtp_msc_a_vnfcnames\r
+                - get_input: rtp_msc_a_index\r
+              $VM_NAME_B:\r
+                get_input:\r
+                - rtp_msc_b_vnfcnames\r
+                - get_input: rtp_msc_a_index\r
+        vnf_name:\r
+          get_input: vnf_name\r
+        perimeta_untrusted_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        int_ha_net_id:\r
+          get_input: shared_int_ha_net_id\r
+        perimeta_instance_index:\r
+          get_input: rtp_msc_a_index\r
+        service_template_filter:\r
+          substitute_service_template: module_2_perimeta_sw_a_childServiceTemplate.yaml\r
+        perimeta_keypair:\r
+          get_input: shared_perimeta_keypair\r
+        perimeta_server_groups:\r
+          get_input: shared_perimeta_rtp_msc_server_groups\r
+        vnf_id:\r
+          get_input: vnf_id\r
+        availability_zone_0:\r
+          get_input: availability_zone_0\r
+        rtp_msc_mgmt_vips:\r
+          get_input: rtp_msc_mgmt_vips\r
+        perimeta_sec_groups:\r
+          get_input: shared_perimeta_sec_groups\r
+        rtp_msc_untrusted_parent_vips:\r
+          get_input: rtp_msc_untrusted_parent_vips\r
+        perimeta_untrusted_num_vlans:\r
+          get_input: perimeta_untrusted_num_vlans\r
+        rtp_msc_a_int_ha_ips:\r
+          get_input: rtp_msc_a_int_ha_ips\r
+        rtp_msc_a_untrusted_parent_ips:\r
+          get_input: rtp_msc_a_untrusted_parent_ips\r
+        rtp_msc_a_trusted_ips:\r
+          get_input: rtp_msc_a_trusted_ips\r
+        rtp_msc_untrusted_vips:\r
+          get_input: rtp_msc_untrusted_vips\r
+        trusted_net_id:\r
+          get_input: trusted_net_id\r
+        rtp_msc_b_int_ha_ips:\r
+          get_input: rtp_msc_b_int_ha_ips\r
+        rtp_msc_a_mgmt_ips:\r
+          get_input: rtp_msc_a_mgmt_ips\r
+        rtp_msc_a_untrusted_ips:\r
+          get_input: rtp_msc_a_untrusted_ips\r
+        vm_role: msc\r
+        rtp_msc_untrusted_v6_vips:\r
+          get_input: rtp_msc_untrusted_v6_vips\r
+        perimeta_untrusted_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        rtp_msc_a_untrusted_v6_ips:\r
+          get_input: rtp_msc_a_untrusted_v6_ips\r
+        perimeta_image_name:\r
+          get_input: rtp_msc_image_name\r
+        mgmt_net_id:\r
+          get_input: mgmt_net_id\r
+        int_untrusted_parent_net_id:\r
+          get_input: shared_int_untrusted_parent_net_id\r
+        rtp_msc_a_names:\r
+          get_input: rtp_msc_a_names\r
+        perimeta_flavor_name:\r
+          get_input: rtp_msc_flavor_name\r
+        rtp_msc_trusted_vips:\r
+          get_input: rtp_msc_trusted_vips\r
+      requirements:\r
+      - link_perimeta_rtp_msc_a_ha_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_internal_ha_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_int_untrusted_parent_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      artifacts:\r
+        rtp_msc_a_template:\r
+          type: tosca.artifacts.Deployment\r
+          file: ../Artifacts/rtp_msc_a_template.json\r
+    shared_perimeta_internal_ha_net_0:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_enable_dhcp: false\r
+            network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: perimeta_int_ha_net_prefix_len_v4\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: perimeta_int_ha_net_prefix_v4\r
+        network_name:\r
+          str_replace:\r
+            template: $VF_NAME_int_ha_net_0\r
+            params:\r
+              $VF_NAME:\r
+                get_input: vnf_name\r
+        network_ipam_refs:\r
+        - UNSUPPORTED_RESOURCE_perimeta_internal_ha_ipam_net_0\r
+    perimeta_rtp_msc_b:\r
+      type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_b_child\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vf_module_id:\r
+          get_input: vf_module_id\r
+        int_ha_network_plen:\r
+          get_input: shared_int_ha_net_prefix_len_v4\r
+        rtp_msc_b_untrusted_v6_ips:\r
+          get_input: rtp_msc_b_untrusted_v6_ips\r
+        rtp_msc_b_mgmt_ips:\r
+          get_input: rtp_msc_b_mgmt_ips\r
+        vnf_name:\r
+          get_input: vnf_name\r
+        perimeta_untrusted_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        rtp_msc_b_names:\r
+          get_input: rtp_msc_b_names\r
+        rtp_msc_b_untrusted_ips:\r
+          get_input: rtp_msc_b_untrusted_ips\r
+        int_ha_net_id:\r
+          get_input: shared_int_ha_net_id\r
+        perimeta_instance_index:\r
+          get_input: rtp_msc_b_index\r
+        service_template_filter:\r
+          substitute_service_template: module_2_perimeta_sw_b_childServiceTemplate.yaml\r
+        perimeta_keypair:\r
+          get_input: shared_perimeta_keypair\r
+        perimeta_server_groups:\r
+          get_input: shared_perimeta_rtp_msc_server_groups\r
+        vnf_id:\r
+          get_input: vnf_id\r
+        availability_zone_1:\r
+          get_input: availability_zone_1\r
+        rtp_msc_mgmt_vips:\r
+          get_input: rtp_msc_mgmt_vips\r
+        perimeta_sec_groups:\r
+          get_input: shared_perimeta_sec_groups\r
+        rtp_msc_untrusted_parent_vips:\r
+          get_input: rtp_msc_untrusted_parent_vips\r
+        perimeta_untrusted_num_vlans:\r
+          get_input: perimeta_untrusted_num_vlans\r
+        rtp_msc_a_int_ha_ips:\r
+          get_input: rtp_msc_a_int_ha_ips\r
+        rtp_msc_b_trusted_ips:\r
+          get_input: rtp_msc_b_trusted_ips\r
+        rtp_msc_untrusted_vips:\r
+          get_input: rtp_msc_untrusted_vips\r
+        trusted_net_id:\r
+          get_input: trusted_net_id\r
+        rtp_msc_b_int_ha_ips:\r
+          get_input: rtp_msc_b_int_ha_ips\r
+        vm_role: msc\r
+        rtp_msc_untrusted_v6_vips:\r
+          get_input: rtp_msc_untrusted_v6_vips\r
+        perimeta_untrusted_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        perimeta_image_name:\r
+          get_input: rtp_msc_image_name\r
+        rtp_msc_b_untrusted_parent_ips:\r
+          get_input: rtp_msc_b_untrusted_parent_ips\r
+        mgmt_net_id:\r
+          get_input: mgmt_net_id\r
+        int_untrusted_parent_net_id:\r
+          get_input: shared_int_untrusted_parent_net_id\r
+        perimeta_flavor_name:\r
+          get_input: rtp_msc_flavor_name\r
+        rtp_msc_trusted_vips:\r
+          get_input: rtp_msc_trusted_vips\r
+      requirements:\r
+      - link_perimeta_rtp_msc_b_ha_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_internal_ha_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_int_untrusted_parent_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+    perimeta_ssc_a:\r
+      type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_a_child\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vf_module_id:\r
+          get_input: vf_module_id\r
+        ssc_a_name_0:\r
+          get_input: ssc_a_name_0\r
+        int_ha_network_plen:\r
+          get_input: shared_int_ha_net_prefix_len_v4\r
+        perimeta_server_group:\r
+          get_input: shared_perimeta_ssc_server_group\r
+        unused_port_net_id:\r
+          get_input: shared_ssc_unused_net_id\r
+        perimeta_config:\r
+          str_replace:\r
+            template:\r
+              get_artifact:\r
+              - SELF\r
+              - ssc_a_template\r
+            params:\r
+              $RADIUS_SERVERNAME:\r
+                get_input: ssc_json_radius_servername\r
+              $REMOTE_MGMT_IP_ADDR:\r
+                get_input: ssc_b_mgmt_ip_0\r
+              $VIRT_MGMT_IP_ADDR:\r
+                get_input: ssc_mgmt_vip_0\r
+              $LOCAL_MGMT_IP_ADDR:\r
+                get_input: ssc_a_mgmt_ip_0\r
+              $MGMT_NETWORK_DEFAULT_GATEWAY:\r
+                get_input: mgmt_net_default_gateway\r
+              $RADIUS_DEFAULT:\r
+                get_input: ssc_json_radius_default\r
+              $COMPLETION_PARAMS: ''\r
+              $RADIUS_PORT:\r
+                get_input: ssc_json_radius_port\r
+              $NTP_SERVER_IP_ADDRS:\r
+                get_input: ntp_server_ip_addrs\r
+              $HEALING_OR_INSTANTIATION:\r
+                get_input: ssc_a_json_prefix\r
+              $RADIUS_SECRET:\r
+                get_input: ssc_json_radius_secret\r
+              $RADIUS_TIMEOUT:\r
+                get_input: ssc_json_radius_timeout\r
+              $41ORABOVE:\r
+                get_input: ssc_json_v41\r
+              $SYSTEM_NAME:\r
+                get_input: ssc_vnfcname_0\r
+              $USERADIUSAUTH:\r
+                get_input: ssc_json_use_radius_authentication\r
+              $MGMT_NETWORK_PLEN:\r
+                get_input: mgmt_net_plen\r
+              $VM_NAME_A:\r
+                get_input: ssc_a_vnfcname_0\r
+              $VM_NAME_B:\r
+                get_input: ssc_b_vnfcname_0\r
+        ssc_a_int_ha_ip_0:\r
+          get_input: ssc_a_int_ha_ip_0\r
+        vnf_name:\r
+          get_input: vnf_name\r
+        perimeta_untrusted_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        int_ha_net_id:\r
+          get_input: shared_int_ha_net_id\r
+        ssc_b_int_ha_ip_0:\r
+          get_input: ssc_b_int_ha_ip_0\r
+        ssc_mgmt_vip_0:\r
+          get_input: ssc_mgmt_vip_0\r
+        service_template_filter:\r
+          substitute_service_template: module_1_perimeta_swmu_a_childServiceTemplate.yaml\r
+        ssc_a_trusted_ip_0:\r
+          get_input: ssc_a_trusted_ip_0\r
+        perimeta_keypair:\r
+          get_input: shared_perimeta_keypair\r
+        vnf_id:\r
+          get_input: vnf_id\r
+        availability_zone_0:\r
+          get_input: availability_zone_0\r
+        ssc_trusted_vip_0:\r
+          get_input: ssc_trusted_vip_0\r
+        ssc_untrusted_vip_0:\r
+          get_input: ssc_untrusted_vip_0\r
+        perimeta_sec_groups:\r
+          get_input: shared_perimeta_sec_groups\r
+        ssc_a_untrusted_v6_ip_0:\r
+          get_input: ssc_a_untrusted_v6_ip_0\r
+        perimeta_untrusted_num_vlans:\r
+          get_input: perimeta_untrusted_num_vlans\r
+        ssc_rf_vip_0:\r
+          get_input: ssc_rf_vip_0\r
+        ssc_a_mgmt_ip_0:\r
+          get_input: ssc_a_mgmt_ip_0\r
+        trusted_net_id:\r
+          get_input: trusted_net_id\r
+        ssc_untrusted_parent_vip_0:\r
+          get_input: ssc_untrusted_parent_vip_0\r
+        ssc_untrusted_v6_vip_0:\r
+          get_input: ssc_untrusted_v6_vip_0\r
+        ssc_a_rf_ip_0:\r
+          get_input: ssc_a_rf_ip_0\r
+        vm_role: ssc\r
+        ssc_a_untrusted_parent_ip_0:\r
+          get_input: ssc_a_untrusted_parent_ip_0\r
+        perimeta_untrusted_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        ssc_a_untrusted_ip_0:\r
+          get_input: ssc_a_untrusted_ip_0\r
+        perimeta_image_name:\r
+          get_input: ssc_image_name\r
+        mgmt_net_id:\r
+          get_input: mgmt_net_id\r
+        int_untrusted_parent_net_id:\r
+          get_input: shared_int_untrusted_parent_net_id\r
+        perimeta_flavor_name:\r
+          get_input: ssc_flavor_name\r
+      requirements:\r
+      - link_perimeta_ssc_a_ha_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_internal_ha_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_perimeta_ssc_a_untrusted_parent_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_int_untrusted_parent_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_perimeta_ssc_a_unused_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_unused_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      artifacts:\r
+        ssc_a_template:\r
+          type: tosca.artifacts.Deployment\r
+          file: ../Artifacts/ssc_a_template.json\r
+    shared_perimeta_rsg:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_shared_perimeta_RSG\r
+            params:\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        description: Security Group for Perimeta networks\r
+        rules:\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 1\r
+    shared_perimeta_unused_net_0:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        dhcp_enabled: false\r
+        ip_version: 4\r
+        network_name:\r
+          str_replace:\r
+            template: $VF_NAME_int_unused_net\r
+            params:\r
+              $VF_NAME:\r
+                get_input: vnf_name\r
+        subnets:\r
+          shared_perimeta_unused_net_0_subnet:\r
+            enable_dhcp: false\r
+            ip_version: 4\r
+            cidr: 10.0.0.0/29\r
+            gateway_ip: ''\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: shared_perimeta_unused_net_0\r
+          relationship: tosca.relationships.DependsOn\r
+    perimeta_ssc_b:\r
+      type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_b_child\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vf_module_id:\r
+          get_input: vf_module_id\r
+        int_ha_network_plen:\r
+          get_input: shared_int_ha_net_prefix_len_v4\r
+        perimeta_server_group:\r
+          get_input: shared_perimeta_ssc_server_group\r
+        unused_port_net_id:\r
+          get_input: shared_ssc_unused_net_id\r
+        ssc_b_name_0:\r
+          get_input: ssc_b_name_0\r
+        ssc_a_int_ha_ip_0:\r
+          get_input: ssc_a_int_ha_ip_0\r
+        ssc_b_untrusted_ip_0:\r
+          get_input: ssc_b_untrusted_ip_0\r
+        ssc_b_mgmt_ip_0:\r
+          get_input: ssc_b_mgmt_ip_0\r
+        ssc_b_untrusted_parent_ip_0:\r
+          get_input: ssc_b_untrusted_parent_ip_0\r
+        vnf_name:\r
+          get_input: vnf_name\r
+        perimeta_untrusted_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        int_ha_net_id:\r
+          get_input: shared_int_ha_net_id\r
+        ssc_b_int_ha_ip_0:\r
+          get_input: ssc_b_int_ha_ip_0\r
+        ssc_mgmt_vip_0:\r
+          get_input: ssc_mgmt_vip_0\r
+        service_template_filter:\r
+          substitute_service_template: module_1_perimeta_swmu_b_childServiceTemplate.yaml\r
+        perimeta_keypair:\r
+          get_input: shared_perimeta_keypair\r
+        vnf_id:\r
+          get_input: vnf_id\r
+        availability_zone_1:\r
+          get_input: availability_zone_1\r
+        ssc_trusted_vip_0:\r
+          get_input: ssc_trusted_vip_0\r
+        ssc_untrusted_vip_0:\r
+          get_input: ssc_untrusted_vip_0\r
+        perimeta_sec_groups:\r
+          get_input: shared_perimeta_sec_groups\r
+        perimeta_untrusted_num_vlans:\r
+          get_input: perimeta_untrusted_num_vlans\r
+        ssc_rf_vip_0:\r
+          get_input: ssc_rf_vip_0\r
+        ssc_b_trusted_ip_0:\r
+          get_input: ssc_b_trusted_ip_0\r
+        trusted_net_id:\r
+          get_input: trusted_net_id\r
+        ssc_untrusted_parent_vip_0:\r
+          get_input: ssc_untrusted_parent_vip_0\r
+        ssc_untrusted_v6_vip_0:\r
+          get_input: ssc_untrusted_v6_vip_0\r
+        ssc_b_untrusted_v6_ip_0:\r
+          get_input: ssc_b_untrusted_v6_ip_0\r
+        vm_role: ssc\r
+        perimeta_untrusted_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        perimeta_image_name:\r
+          get_input: ssc_image_name\r
+        ssc_b_rf_ip_0:\r
+          get_input: ssc_b_rf_ip_0\r
+        mgmt_net_id:\r
+          get_input: mgmt_net_id\r
+        int_untrusted_parent_net_id:\r
+          get_input: shared_int_untrusted_parent_net_id\r
+        perimeta_flavor_name:\r
+          get_input: ssc_flavor_name\r
+      requirements:\r
+      - link_perimeta_ssc_b_untrusted_parent_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_int_untrusted_parent_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_perimeta_ssc_b_unused_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_unused_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_perimeta_ssc_b_ha_0_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: shared_perimeta_internal_ha_net_0\r
+          relationship: tosca.relationships.network.LinksTo\r
+    shared_perimeta_int_untrusted_parent_net_0:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        dhcp_enabled: false\r
+        ip_version: 4\r
+        network_name:\r
+          str_replace:\r
+            template: $VF_NAME_int_untrusted_parent_net\r
+            params:\r
+              $VF_NAME:\r
+                get_input: vnf_name\r
+        subnets:\r
+          shared_perimeta_int_untrusted_parent_net_0_subnet:\r
+            enable_dhcp: false\r
+            ip_version: 4\r
+            cidr: 11.0.0.0/24\r
+            gateway_ip: ''\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: shared_perimeta_int_untrusted_parent_net_0\r
+          relationship: tosca.relationships.DependsOn\r
+  groups:\r
+    base_perimeta_deployment_create_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/base_perimeta_deployment_create.yaml\r
+        description: |\r
+          HOT template to instantiate base shared resources for a Perimeta deployment\r
+      members:\r
+      - shared_perimeta_internal_ha_net_0\r
+      - shared_perimeta_rsg\r
+      - shared_perimeta_unused_net_0\r
+      - shared_perimeta_int_untrusted_parent_net_0\r
+    module_2_perimeta_rtp_msc_a_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_2_perimeta_rtp_msc_a.yaml\r
+        description: |\r
+          HOT template to instantiate an A side Perimeta RTP MSC and optionally partner it with the corresponding B side\r
+      members:\r
+      - perimeta_rtp_msc_a\r
+    module_1_perimeta_ssc_b_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_1_perimeta_ssc_b.yaml\r
+        description: "HOT template to instantiate an B side Perimeta SSC \n"\r
+      members:\r
+      - perimeta_ssc_b\r
+    shared_perimeta_ssc_server_gp_group:\r
+      type: tosca.groups.Root\r
+      members: [\r
+        ]\r
+    module_2_perimeta_rtp_msc_b_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_2_perimeta_rtp_msc_b.yaml\r
+        description: "HOT template to instantiate an B side Perimeta RTP MSC \n"\r
+      members:\r
+      - perimeta_rtp_msc_b\r
+    module_1_perimeta_ssc_a_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_1_perimeta_ssc_a.yaml\r
+        description: |\r
+          HOT template to instantiate an A side Perimeta SSC and optionally partner it with the corresponding B side\r
+      members:\r
+      - perimeta_ssc_a\r
+  outputs:\r
+    shared_int_ha_net_prefix_len_v4:\r
+      description: HA internal network IPv4 prefix length\r
+      value:\r
+        get_input: perimeta_int_ha_net_prefix_len_v4\r
+    shared_perimeta_keypair:\r
+      description: SSH keypair for deployment\r
+      value: UNSUPPORTED_RESOURCE_shared_perimeta_keypair\r
+    shared_perimeta_rtp_msc_server_groups:\r
+      description: Perimeta RTP MSC Server groups\r
+      value:\r
+        list_join:\r
+        - ','\r
+        - get_attr:\r
+          - shared_perimeta_rtp_msc_server_gps\r
+          - refs\r
+  policies:\r
+    shared_perimeta_ssc_server_gp_policy:\r
+      type: org.openecomp.policies.placement.Antilocate\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_shared_ssc_RSG_name_0\r
+            params:\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        container_type: host\r
+      targets:\r
+      - shared_perimeta_ssc_server_gp_group\r
\ No newline at end of file
index 96d690f..f41a92c 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: module_1_perimeta_swmu_a_child
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.ssc_a:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    vf_module_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique ID for this VF Module instance
-    ssc_a_name_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Name of Perimeta VM A instance
-    int_ha_network_plen:
-      hidden: false
-      immutable: false
-      type: float
-      description: Prefix length of subnet associated with internal HA network
-      constraints:
-      - in_range:
-        - 0
-        - 31
-    unused_port_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Service network unused port network UUID
-    perimeta_server_group:
-      hidden: false
-      immutable: false
-      type: string
-      description: Server group to use for these VMs
-    perimeta_config:
-      hidden: false
-      immutable: false
-      type: string
-      description: JSON orchestration template configuration for instance.
-    ssc_a_int_ha_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as HA IP of A instance.
-    vnf_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique name for this VNF instance
-    perimeta_untrusted_vlan_ids:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of VLAN IDs to use on the untrusted/access network
-      entry_schema:
-        type: string
-    int_ha_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: HA network id
-    ssc_b_int_ha_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as HA IPs of B instance.
-    ssc_mgmt_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Management virtual IP address.
-    ssc_a_trusted_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Trusted/core fixed IPs of A instance.
-    perimeta_keypair:
-      hidden: false
-      immutable: false
-      type: string
-      description: Keypair to use for accessing this Perimeta instance
-    vnf_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: VNF ID of this deployment
-    availability_zone_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Availability zone for A instances.
-    ssc_trusted_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Trusted/core virtual IP address.
-    ssc_untrusted_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Untrusted/access virtual IP address
-    perimeta_sec_groups:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of security groups to add on trusted interfaces.
-      entry_schema:
-        type: string
-    ssc_a_untrusted_v6_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Untrusted/access alternate fixed IP of A instance.
-    perimeta_untrusted_num_vlans:
-      hidden: false
-      immutable: false
-      type: float
-      description: number of VLANs to connect to the untrusted/access interface
-      constraints:
-      - in_range:
-        - 1
-        - 1001
-    ssc_rf_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: RF virtual IP address to use for SSC.
-    ssc_a_mgmt_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as management IP of A instance.
-    trusted_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Trusted/core network UUID
-    ssc_untrusted_parent_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Untrusted/access parent virtual IP address
-    ssc_untrusted_v6_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Untrusted/access alternate virtual IP address
-    ssc_a_rf_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: RF fixed IP address to use for SSC A.
-    vm_role:
-      hidden: false
-      immutable: false
-      type: string
-      description: Role of these VMs
-    ssc_a_untrusted_parent_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Untrusted/access fixed IP of A parent instance.
-    perimeta_untrusted_vlan_networks:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-      entry_schema:
-        type: string
-    ssc_a_untrusted_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Untrusted/access fixed IP of A instance.
-    perimeta_image_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Glance image for Perimeta instance
-    mgmt_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Management network id
-    int_untrusted_parent_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: internal Untrusted/access parent network id
-    perimeta_flavor_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor to use for creating VM instances
-  node_templates:
-    perimeta_ssc_a_ha_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_a_int_ha_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_ha_port
-            params:
-              $VM:
-                get_input: ssc_a_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_ha
-        network:
-          get_input: int_ha_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_a_untrusted_parent_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_a_untrusted_parent_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_untrusted_parent_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_parent_port
-            params:
-              $VM:
-                get_input: ssc_a_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_untrusted_parent
-        network:
-          get_input: int_untrusted_parent_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_a_mgmt_1_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_a_rf_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_rf_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_mgmt_1_port
-            params:
-              $VM:
-                get_input: ssc_a_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: mgmt
-        network:
-          get_input: mgmt_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_a_untrusted_0_vlan_ports:
-      type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual
-      directives:
-      - substitutable
-      properties:
-        perimeta_parent_interface: perimeta_ssc_a_untrusted_parent_0_port
-        perimeta_v6_vip_0:
-          get_input: ssc_untrusted_v6_vip_0
-        service_template_filter:
-          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml
-          count:
-            get_input: perimeta_untrusted_num_vlans
-          mandatory: false
-        perimeta_subinterface_name_prefix:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_port_vlan
-            params:
-              $VM:
-                get_input: ssc_a_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        perimeta_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        perimeta_subinterface_instance_index:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-        perimeta_ip_0:
-          get_input: ssc_a_untrusted_ip_0
-        perimeta_vip_0:
-          get_input: ssc_untrusted_vip_0
-        perimeta_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        perimeta_mac_address:
-          get_attribute:
-          - perimeta_ssc_a_untrusted_parent_0_port
-          - mac_address
-        perimeta_v6_ip_0:
-          get_input: ssc_a_untrusted_v6_ip_0
-      requirements:
-      - binding_contrail_vmi_subinterface:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_a_untrusted_parent_0_port
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_a_trusted_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_a_trusted_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_trusted_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_trusted_port
-            params:
-              $VM:
-                get_input: ssc_a_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: trusted
-        network:
-          get_input: trusted_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_a_unused_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_unused_port
-            params:
-              $VM:
-                get_input: ssc_a_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: unused_port
-        network:
-          get_input: unused_port_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_a_mgmt_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_a_mgmt_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_mgmt_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_mgmt_0_port
-            params:
-              $VM:
-                get_input: ssc_a_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: mgmt
-        network:
-          get_input: mgmt_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_a_server_0:
-      type: org.openecomp.resource.vfc.nodes.heat.ssc_a
-      properties:
-        flavor:
-          get_input: perimeta_flavor_name
-        key_name:
-          get_input: perimeta_keypair
-        availability_zone:
-          get_input: availability_zone_0
-        image:
-          get_input: perimeta_image_name
-        metadata:
-          vf_module_id:
-            get_input: vf_module_id
-          vm_role:
-            str_replace:
-              template: $ROLE_a
-              params:
-                $ROLE:
-                  get_input: vm_role
-          vnf_id:
-            get_input: vnf_id
-          vnf_name:
-            get_input: vnf_name
-          msw_template_version: 17.07.04 - 2017-09-01
-        config_drive: true
-        personality:
-          /opt/MetaSwitch/init/custom.ini:
-            get_artifact:
-            - SELF
-            - custom
-        user_data_format: RAW
-        name:
-          get_input: ssc_a_name_0
-        scheduler_hints:
-          group:
-            get_input: perimeta_server_group
-      artifacts:
-        custom:
-          type: tosca.artifacts.Deployment
-          file: ../Artifacts/custom.ini
-  groups:
-    module_1_perimeta_swmu_a_child_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_1_perimeta_swmu_a_child.yaml
-        description: |
-          HOT template to instantiate an A side Perimeta SSC instance with 6 vNICs as part of a nested template
-      members:
-      - perimeta_ssc_a_ha_0_port
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - perimeta_ssc_a_mgmt_1_port
-      - perimeta_ssc_a_untrusted_0_vlan_ports
-      - perimeta_ssc_a_trusted_0_port
-      - perimeta_ssc_a_unused_0_port
-      - perimeta_ssc_a_mgmt_0_port
-      - perimeta_ssc_a_server_0
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_a_child
-    capabilities:
-      disk.ephemeral.size_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.ephemeral.size
-      network.outgoing.packets.rate_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.outgoing.packets.rate
-      network.incoming.bytes.rate_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.incoming.bytes.rate
-      network.outgoing.bytes.rate_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.outgoing.bytes.rate
-      network.incoming.bytes.rate_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.incoming.bytes.rate
-      network.incoming.packets_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.incoming.packets
-      instance_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - instance
-      network.incoming.packets_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.incoming.packets
-      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.outgoing.packets.rate
-      feature_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - feature
-      binding_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - binding
-      network.outpoing.packets_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.outpoing.packets
-      network.incoming.packets_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.incoming.packets
-      endpoint_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - endpoint
-      network.outgoing.bytes_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.outgoing.bytes
-      forwarder_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - forwarder
-      memory.usage_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - memory.usage
-      network.incoming.packets.rate_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.incoming.packets.rate
-      forwarder_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - forwarder
-      forwarder_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - forwarder
-      forwarder_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - forwarder
-      disk.device.read.requests.rate_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.read.requests.rate
-      network.incoming.bytes_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.incoming.bytes
-      network.outgoing.bytes.rate_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.outgoing.bytes.rate
-      network.outgoing.packets.rate_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.outgoing.packets.rate
-      feature_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:
-      - perimeta_ssc_a_untrusted_0_vlan_ports
-      - feature_contrail_vmi_subinterface
-      feature_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - feature
-      disk.read.bytes_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.read.bytes
-      network.outpoing.packets_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.outpoing.packets
-      attachment_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - attachment
-      disk.write.bytes.rate_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.write.bytes.rate
-      disk.device.write.requests.rate_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.write.requests.rate
-      network.incoming.packets_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.incoming.packets
-      memory_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - memory
-      network.outgoing.packets.rate_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.outgoing.packets.rate
-      feature_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - feature
-      disk.device.iops_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.iops
-      binding_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - binding
-      network.outgoing.bytes_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.outgoing.bytes
-      attachment_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - attachment
-      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.outgoing.bytes.rate
-      network.outgoing.bytes_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.outgoing.bytes
-      disk.write.requests_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.write.requests
-      network.outgoing.bytes_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.outgoing.bytes
-      disk.capacity_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.capacity
-      os_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - os
-      disk.read.bytes.rate_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.read.bytes.rate
-      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.outgoing.bytes.rate
-      network.incoming.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.incoming.bytes.rate
-      forwarder_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - forwarder
-      network.outgoing.bytes.rate_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.outgoing.bytes.rate
-      network.outgoing.bytes_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.outgoing.bytes
-      network.outpoing.packets_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - network.outpoing.packets
-      cpu_util_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - cpu_util
-      attachment_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - attachment
-      network.outgoing.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.outgoing.bytes.rate
-      disk.allocation_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.allocation
-      disk.write.bytes_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.write.bytes
-      attachment_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - attachment
-      feature_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - feature
-      network.outpoing.packets_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.outpoing.packets
-      network.incoming.bytes_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.incoming.bytes
-      network.incoming.packets_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.incoming.packets
-      feature_perimeta_ssc_a_untrusted_0_vlan_ports:
-      - perimeta_ssc_a_untrusted_0_vlan_ports
-      - feature
-      disk.device.latency_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.latency
-      forwarder_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - forwarder
-      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.incoming.bytes.rate
-      binding_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - binding
-      disk.read.requests_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.read.requests
-      attachment_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - attachment
-      scalable_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - scalable
-      disk.usage_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.usage
-      feature_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - feature
-      network.incoming.packets.rate_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.incoming.packets.rate
-      feature_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - feature
-      cpu.delta_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - cpu.delta
-      disk.device.usage_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.usage
-      disk.iops_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.iops
-      binding_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - binding
-      network.incoming.bytes_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.incoming.bytes
-      network.incoming.packets_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.incoming.packets
-      disk.device.read.bytes.rate_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.read.bytes.rate
-      network.incoming.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.incoming.packets.rate
-      binding_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - binding
-      disk.root.size_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.root.size
-      network.incoming.bytes_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.incoming.bytes
-      network.incoming.packets.rate_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.incoming.packets.rate
-      disk.device.allocation_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.allocation
-      disk.device.write.requests_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.write.requests
-      disk.device.write.bytes_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.write.bytes
-      disk.write.requests.rate_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.write.requests.rate
-      network.outpoing.packets_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.outpoing.packets
-      disk.device.read.bytes_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.read.bytes
-      network.outgoing.bytes_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.outgoing.bytes
-      network.incoming.bytes_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.incoming.bytes
-      cpu_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - cpu
-      binding_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - binding
-      network.outgoing.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - network.outgoing.packets.rate
-      disk.device.read.requests_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.read.requests
-      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.outgoing.packets.rate
-      disk.device.write.bytes.rate_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.write.bytes.rate
-      feature_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - feature
-      host_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - host
-      network.incoming.packets.rate_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.incoming.packets.rate
-      network.outpoing.packets_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.outpoing.packets
-      network.incoming.packets.rate_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - network.incoming.packets.rate
-      attachment_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - attachment
-      disk.device.capacity_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.device.capacity
-      binding_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - binding
-      vcpus_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - vcpus
-      network.incoming.bytes_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - network.incoming.bytes
-      network.incoming.bytes.rate_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - network.incoming.bytes.rate
-      disk.latency_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - disk.latency
-      memory.resident_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - memory.resident
-      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - network.incoming.bytes.rate
-    requirements:
-      dependency_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - dependency
-      dependency_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - dependency
-      dependency_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:
-      - perimeta_ssc_a_untrusted_0_vlan_ports
-      - dependency_contrail_vmi_subinterface
-      dependency_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - dependency
-      link_perimeta_ssc_a_mgmt_1_port:
-      - perimeta_ssc_a_mgmt_1_port
-      - link
-      local_storage_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - local_storage
-      link_perimeta_ssc_a_untrusted_parent_0_port:
-      - perimeta_ssc_a_untrusted_parent_0_port
-      - link
-      dependency_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - dependency
-      dependency_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - dependency
-      link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:
-      - perimeta_ssc_a_untrusted_0_vlan_ports
-      - link_contrail_vmi_subinterface
-      link_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - link
-      link_perimeta_ssc_a_trusted_0_port:
-      - perimeta_ssc_a_trusted_0_port
-      - link
-      link_perimeta_ssc_a_ha_0_port:
-      - perimeta_ssc_a_ha_0_port
-      - link
-      link_perimeta_ssc_a_unused_0_port:
-      - perimeta_ssc_a_unused_0_port
-      - link
-      dependency_perimeta_ssc_a_mgmt_0_port:
-      - perimeta_ssc_a_mgmt_0_port
-      - dependency
-      dependency_perimeta_ssc_a_untrusted_0_vlan_ports:
-      - perimeta_ssc_a_untrusted_0_vlan_ports
-      - dependency
-      dependency_perimeta_ssc_a_server_0:
-      - perimeta_ssc_a_server_0
-      - dependency
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: module_1_perimeta_swmu_a_child\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.ssc_a:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique ID for this VF Module instance\r
+    ssc_a_name_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Name of Perimeta VM A instance\r
+    int_ha_network_plen:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Prefix length of subnet associated with internal HA network\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 31\r
+    unused_port_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Service network unused port network UUID\r
+    perimeta_server_group:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Server group to use for these VMs\r
+    perimeta_config:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: JSON orchestration template configuration for instance.\r
+    ssc_a_int_ha_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as HA IP of A instance.\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique name for this VNF instance\r
+    perimeta_untrusted_vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use on the untrusted/access network\r
+      entry_schema:\r
+        type: string\r
+    int_ha_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HA network id\r
+    ssc_b_int_ha_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as HA IPs of B instance.\r
+    ssc_mgmt_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Management virtual IP address.\r
+    ssc_a_trusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Trusted/core fixed IPs of A instance.\r
+    perimeta_keypair:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Keypair to use for accessing this Perimeta instance\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: VNF ID of this deployment\r
+    availability_zone_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Availability zone for A instances.\r
+    ssc_trusted_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Trusted/core virtual IP address.\r
+    ssc_untrusted_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Untrusted/access virtual IP address\r
+    perimeta_sec_groups:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of security groups to add on trusted interfaces.\r
+      entry_schema:\r
+        type: string\r
+    ssc_a_untrusted_v6_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Untrusted/access alternate fixed IP of A instance.\r
+    perimeta_untrusted_num_vlans:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: number of VLANs to connect to the untrusted/access interface\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 1001\r
+    ssc_rf_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: RF virtual IP address to use for SSC.\r
+    ssc_a_mgmt_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as management IP of A instance.\r
+    trusted_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Trusted/core network UUID\r
+    ssc_untrusted_parent_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Untrusted/access parent virtual IP address\r
+    ssc_untrusted_v6_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Untrusted/access alternate virtual IP address\r
+    ssc_a_rf_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: RF fixed IP address to use for SSC A.\r
+    vm_role:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Role of these VMs\r
+    ssc_a_untrusted_parent_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Untrusted/access fixed IP of A parent instance.\r
+    perimeta_untrusted_vlan_networks:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+      entry_schema:\r
+        type: string\r
+    ssc_a_untrusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Untrusted/access fixed IP of A instance.\r
+    perimeta_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Glance image for Perimeta instance\r
+    mgmt_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Management network id\r
+    int_untrusted_parent_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: internal Untrusted/access parent network id\r
+    perimeta_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor to use for creating VM instances\r
+  node_templates:\r
+    perimeta_ssc_a_ha_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_a_int_ha_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_ha_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_a_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_ha\r
+        network:\r
+          get_input: int_ha_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_a_untrusted_parent_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_a_untrusted_parent_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_untrusted_parent_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_parent_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_a_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_untrusted_parent\r
+        network:\r
+          get_input: int_untrusted_parent_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_a_mgmt_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_a_rf_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_rf_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_mgmt_1_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_a_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: mgmt\r
+        network:\r
+          get_input: mgmt_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_a_untrusted_0_vlan_ports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        perimeta_parent_interface: perimeta_ssc_a_untrusted_parent_0_port\r
+        perimeta_v6_vip_0:\r
+          get_input: ssc_untrusted_v6_vip_0\r
+        service_template_filter:\r
+          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml\r
+          count:\r
+            get_input: perimeta_untrusted_num_vlans\r
+          mandatory: false\r
+        perimeta_subinterface_name_prefix:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_port_vlan\r
+            params:\r
+              $VM:\r
+                get_input: ssc_a_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        perimeta_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        perimeta_subinterface_instance_index:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        perimeta_ip_0:\r
+          get_input: ssc_a_untrusted_ip_0\r
+        perimeta_vip_0:\r
+          get_input: ssc_untrusted_vip_0\r
+        perimeta_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        perimeta_mac_address:\r
+          get_attribute:\r
+          - perimeta_ssc_a_untrusted_parent_0_port\r
+          - mac_address\r
+        perimeta_v6_ip_0:\r
+          get_input: ssc_a_untrusted_v6_ip_0\r
+      requirements:\r
+      - binding_contrail_vmi_subinterface:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_a_untrusted_parent_0_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_a_trusted_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_a_trusted_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_trusted_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_trusted_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_a_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: trusted\r
+        network:\r
+          get_input: trusted_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_a_unused_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_unused_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_a_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: unused_port\r
+        network:\r
+          get_input: unused_port_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_a_mgmt_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_a_mgmt_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_mgmt_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_mgmt_0_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_a_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: mgmt\r
+        network:\r
+          get_input: mgmt_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_a_server_0:\r
+      type: org.openecomp.resource.vfc.nodes.heat.ssc_a\r
+      properties:\r
+        flavor:\r
+          get_input: perimeta_flavor_name\r
+        key_name:\r
+          get_input: perimeta_keypair\r
+        availability_zone:\r
+          get_input: availability_zone_0\r
+        image:\r
+          get_input: perimeta_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vm_role:\r
+            str_replace:\r
+              template: $ROLE_a\r
+              params:\r
+                $ROLE:\r
+                  get_input: vm_role\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+          msw_template_version: 17.07.04 - 2017-09-01\r
+        config_drive: true\r
+        personality:\r
+          /opt/MetaSwitch/init/custom.ini:\r
+            get_artifact:\r
+            - SELF\r
+            - custom\r
+        user_data_format: RAW\r
+        name:\r
+          get_input: ssc_a_name_0\r
+        scheduler_hints:\r
+          group:\r
+            get_input: perimeta_server_group\r
+      artifacts:\r
+        custom:\r
+          type: tosca.artifacts.Deployment\r
+          file: ../Artifacts/custom.ini\r
+  groups:\r
+    module_1_perimeta_swmu_a_child_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_1_perimeta_swmu_a_child.yaml\r
+        description: |\r
+          HOT template to instantiate an A side Perimeta SSC instance with 6 vNICs as part of a nested template\r
+      members:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - perimeta_ssc_a_untrusted_0_vlan_ports\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - perimeta_ssc_a_unused_0_port\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - perimeta_ssc_a_server_0\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_a_child\r
+    capabilities:\r
+      disk.ephemeral.size_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.ephemeral.size\r
+      network.outgoing.packets.rate_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.outgoing.packets.rate\r
+      network.incoming.bytes.rate_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.incoming.bytes.rate\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.bytes.rate_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.incoming.packets\r
+      instance_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - instance\r
+      network.incoming.packets_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.incoming.packets\r
+      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.outgoing.packets.rate\r
+      feature_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - feature\r
+      binding_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - binding\r
+      network.outpoing.packets_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.incoming.packets\r
+      endpoint_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - endpoint\r
+      network.outgoing.bytes_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.outgoing.bytes\r
+      forwarder_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - forwarder\r
+      memory.usage_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - memory.usage\r
+      network.incoming.packets.rate_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.incoming.packets.rate\r
+      forwarder_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - forwarder\r
+      forwarder_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - forwarder\r
+      forwarder_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - forwarder\r
+      disk.device.read.requests.rate_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.read.requests.rate\r
+      network.incoming.bytes_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.packets.rate_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.outgoing.packets.rate\r
+      feature_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_a_untrusted_0_vlan_ports\r
+      - feature_contrail_vmi_subinterface\r
+      feature_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - feature\r
+      disk.read.bytes_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.read.bytes\r
+      network.outpoing.packets_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.outpoing.packets\r
+      attachment_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - attachment\r
+      disk.write.bytes.rate_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.write.bytes.rate\r
+      disk.device.write.requests.rate_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.write.requests.rate\r
+      network.incoming.packets_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.incoming.packets\r
+      memory_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - memory\r
+      network.outgoing.packets.rate_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.outgoing.packets.rate\r
+      feature_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - feature\r
+      disk.device.iops_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.iops\r
+      binding_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - binding\r
+      network.outgoing.bytes_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.outgoing.bytes\r
+      attachment_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - attachment\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.outgoing.bytes\r
+      disk.write.requests_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.write.requests\r
+      network.outgoing.bytes_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.outgoing.bytes\r
+      disk.capacity_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.capacity\r
+      os_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - os\r
+      disk.read.bytes.rate_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.read.bytes.rate\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.incoming.bytes.rate\r
+      forwarder_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - forwarder\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.outgoing.bytes\r
+      network.outpoing.packets_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - network.outpoing.packets\r
+      cpu_util_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - cpu_util\r
+      attachment_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - attachment\r
+      network.outgoing.bytes.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.outgoing.bytes.rate\r
+      disk.allocation_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.allocation\r
+      disk.write.bytes_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.write.bytes\r
+      attachment_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - attachment\r
+      feature_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - feature\r
+      network.outpoing.packets_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.outpoing.packets\r
+      network.incoming.bytes_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.packets_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.incoming.packets\r
+      feature_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_a_untrusted_0_vlan_ports\r
+      - feature\r
+      disk.device.latency_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.latency\r
+      forwarder_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - forwarder\r
+      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.incoming.bytes.rate\r
+      binding_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - binding\r
+      disk.read.requests_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.read.requests\r
+      attachment_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - attachment\r
+      scalable_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - scalable\r
+      disk.usage_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.usage\r
+      feature_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - feature\r
+      network.incoming.packets.rate_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.incoming.packets.rate\r
+      feature_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - feature\r
+      cpu.delta_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - cpu.delta\r
+      disk.device.usage_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.usage\r
+      disk.iops_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.iops\r
+      binding_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - binding\r
+      network.incoming.bytes_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.incoming.bytes\r
+      network.incoming.packets_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.incoming.packets\r
+      disk.device.read.bytes.rate_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.read.bytes.rate\r
+      network.incoming.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.incoming.packets.rate\r
+      binding_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - binding\r
+      disk.root.size_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.root.size\r
+      network.incoming.bytes_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.packets.rate_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.incoming.packets.rate\r
+      disk.device.allocation_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.allocation\r
+      disk.device.write.requests_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.write.requests\r
+      disk.device.write.bytes_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.write.bytes\r
+      disk.write.requests.rate_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.write.requests.rate\r
+      network.outpoing.packets_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.outpoing.packets\r
+      disk.device.read.bytes_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.read.bytes\r
+      network.outgoing.bytes_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.outgoing.bytes\r
+      network.incoming.bytes_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.incoming.bytes\r
+      cpu_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - cpu\r
+      binding_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - binding\r
+      network.outgoing.packets.rate_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - network.outgoing.packets.rate\r
+      disk.device.read.requests_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.read.requests\r
+      network.outgoing.packets.rate_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.outgoing.packets.rate\r
+      disk.device.write.bytes.rate_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.write.bytes.rate\r
+      feature_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - feature\r
+      host_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - host\r
+      network.incoming.packets.rate_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.incoming.packets.rate\r
+      network.outpoing.packets_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets.rate_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - network.incoming.packets.rate\r
+      attachment_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - attachment\r
+      disk.device.capacity_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.device.capacity\r
+      binding_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - binding\r
+      vcpus_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - vcpus\r
+      network.incoming.bytes_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.bytes.rate_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - network.incoming.bytes.rate\r
+      disk.latency_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - disk.latency\r
+      memory.resident_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - memory.resident\r
+      network.incoming.bytes.rate_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - network.incoming.bytes.rate\r
+    requirements:\r
+      dependency_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - dependency\r
+      dependency_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - dependency\r
+      dependency_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_a_untrusted_0_vlan_ports\r
+      - dependency_contrail_vmi_subinterface\r
+      dependency_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - dependency\r
+      link_perimeta_ssc_a_mgmt_1_port:\r
+      - perimeta_ssc_a_mgmt_1_port\r
+      - link\r
+      local_storage_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - local_storage\r
+      link_perimeta_ssc_a_untrusted_parent_0_port:\r
+      - perimeta_ssc_a_untrusted_parent_0_port\r
+      - link\r
+      dependency_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - dependency\r
+      dependency_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - dependency\r
+      link_contrail_vmi_subinterface_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_a_untrusted_0_vlan_ports\r
+      - link_contrail_vmi_subinterface\r
+      link_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - link\r
+      link_perimeta_ssc_a_trusted_0_port:\r
+      - perimeta_ssc_a_trusted_0_port\r
+      - link\r
+      link_perimeta_ssc_a_ha_0_port:\r
+      - perimeta_ssc_a_ha_0_port\r
+      - link\r
+      link_perimeta_ssc_a_unused_0_port:\r
+      - perimeta_ssc_a_unused_0_port\r
+      - link\r
+      dependency_perimeta_ssc_a_mgmt_0_port:\r
+      - perimeta_ssc_a_mgmt_0_port\r
+      - dependency\r
+      dependency_perimeta_ssc_a_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_a_untrusted_0_vlan_ports\r
+      - dependency\r
+      dependency_perimeta_ssc_a_server_0:\r
+      - perimeta_ssc_a_server_0\r
+      - dependency\r
\ No newline at end of file
index 74a843c..e03377b 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: module_1_perimeta_swmu_b_child
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.ssc_b:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    vf_module_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique ID for this VF Module instance
-    int_ha_network_plen:
-      hidden: false
-      immutable: false
-      type: float
-      description: Prefix length of subnet associated with internal HA network
-      constraints:
-      - in_range:
-        - 0
-        - 31
-    unused_port_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Service network unused port network UUID
-    perimeta_server_group:
-      hidden: false
-      immutable: false
-      type: string
-      description: Server group to use for these VMs
-    ssc_b_name_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Name of Perimeta VM B instance
-    ssc_a_int_ha_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as HA IPs of A instance.
-    ssc_b_untrusted_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Untrusted/access fixed IP of B instance.
-    ssc_b_mgmt_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as management IP of B instance.
-    ssc_b_untrusted_parent_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Untrusted/access fixed IP of B parent instance.
-    vnf_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique name for this VNF instance
-    perimeta_untrusted_vlan_ids:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of VLAN IDs to use on the untrusted/access network
-      entry_schema:
-        type: string
-    int_ha_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: HA network id
-    ssc_b_int_ha_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as HA IP of B instance.
-    ssc_mgmt_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Management virtual IP address.
-    perimeta_keypair:
-      hidden: false
-      immutable: false
-      type: string
-      description: Keypair to use for accessing this Perimeta instance
-    vnf_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: VNF ID of this deployment
-    availability_zone_1:
-      hidden: false
-      immutable: false
-      type: string
-      description: Availability zone for B instances.  May be the same as A instance.
-    ssc_trusted_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Trusted/core virtual IP address.
-    ssc_untrusted_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Untrusted/access virtual IP address
-    perimeta_sec_groups:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of security groups to add on trusted interfaces.
-      entry_schema:
-        type: string
-    perimeta_untrusted_num_vlans:
-      hidden: false
-      immutable: false
-      type: float
-      description: number of VLANs to connect to the untrusted/access interface
-      constraints:
-      - in_range:
-        - 1
-        - 1001
-    ssc_rf_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: RF virtual IP address to use for SSC.
-    ssc_b_trusted_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Trusted/core fixed IPs of B instance.
-    trusted_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Trusted/core network UUID
-    ssc_untrusted_parent_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Untrusted/access parent virtual IP address
-    ssc_untrusted_v6_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Untrusted/access alternate virtual IP address
-    ssc_b_untrusted_v6_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Fixed IP address to use as Untrusted/access alternate fixed IP of B instance.
-    vm_role:
-      hidden: false
-      immutable: false
-      type: string
-      description: Role of these VMs
-    perimeta_untrusted_vlan_networks:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-      entry_schema:
-        type: string
-    perimeta_image_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Glance image for Perimeta instance
-    ssc_b_rf_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: RF fixed IP address to use for SSC B.
-    mgmt_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Management network id
-    int_untrusted_parent_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: internal Untrusted/access parent network id
-    perimeta_flavor_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor to use for creating VM instances
-  node_templates:
-    perimeta_ssc_b_trusted_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_b_trusted_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_trusted_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_trusted_port
-            params:
-              $VM:
-                get_input: ssc_b_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: trusted
-        network:
-          get_input: trusted_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_b_untrusted_parent_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_b_untrusted_parent_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_untrusted_parent_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_parent_port
-            params:
-              $VM:
-                get_input: ssc_b_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_untrusted_parent
-        network:
-          get_input: int_untrusted_parent_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_b_untrusted_0_vlan_ports:
-      type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual
-      directives:
-      - substitutable
-      properties:
-        perimeta_parent_interface: perimeta_ssc_b_untrusted_parent_0_port
-        perimeta_v6_vip_0:
-          get_input: ssc_untrusted_v6_vip_0
-        service_template_filter:
-          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml
-          count:
-            get_input: perimeta_untrusted_num_vlans
-          mandatory: false
-        perimeta_subinterface_name_prefix:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_port_vlan
-            params:
-              $VM:
-                get_input: ssc_b_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        perimeta_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        perimeta_subinterface_instance_index:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-        perimeta_ip_0:
-          get_input: ssc_b_untrusted_ip_0
-        perimeta_vip_0:
-          get_input: ssc_untrusted_vip_0
-        perimeta_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        perimeta_mac_address:
-          get_attribute:
-          - perimeta_ssc_b_untrusted_parent_0_port
-          - mac_address
-        perimeta_v6_ip_0:
-          get_input: ssc_b_untrusted_v6_ip_0
-      requirements:
-      - binding_contrail_vmi_subinterface:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_b_untrusted_parent_0_port
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_b_mgmt_1_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_b_rf_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_rf_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_mgmt_1_port
-            params:
-              $VM:
-                get_input: ssc_b_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: mgmt
-        network:
-          get_input: mgmt_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_b_unused_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_unused_port
-            params:
-              $VM:
-                get_input: ssc_b_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: unused_port
-        network:
-          get_input: unused_port_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_b_server_0:
-      type: org.openecomp.resource.vfc.nodes.heat.ssc_b
-      properties:
-        flavor:
-          get_input: perimeta_flavor_name
-        key_name:
-          get_input: perimeta_keypair
-        availability_zone:
-          get_input: availability_zone_1
-        image:
-          get_input: perimeta_image_name
-        metadata:
-          vf_module_id:
-            get_input: vf_module_id
-          vm_role:
-            str_replace:
-              template: $ROLE_b
-              params:
-                $ROLE:
-                  get_input: vm_role
-          vnf_id:
-            get_input: vnf_id
-          vnf_name:
-            get_input: vnf_name
-          msw_template_version: 17.07.04 - 2017-09-01
-        config_drive: true
-        user_data_format: RAW
-        name:
-          get_input: ssc_b_name_0
-        scheduler_hints:
-          group:
-            get_input: perimeta_server_group
-    perimeta_ssc_b_mgmt_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: true
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_b_mgmt_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input: ssc_mgmt_vip_0
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_mgmt_0_port
-            params:
-              $VM:
-                get_input: ssc_b_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: mgmt
-        network:
-          get_input: mgmt_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_ssc_b_ha_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input: ssc_b_int_ha_ip_0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_ha_port
-            params:
-              $VM:
-                get_input: ssc_b_name_0
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_ha
-        network:
-          get_input: int_ha_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_ssc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-  groups:
-    module_1_perimeta_swmu_b_child_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_1_perimeta_swmu_b_child.yaml
-        description: |
-          HOT template to instantiate an B side Perimeta SSC instance with 6 vNICs as part of a nested template
-      members:
-      - perimeta_ssc_b_trusted_0_port
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - perimeta_ssc_b_untrusted_0_vlan_ports
-      - perimeta_ssc_b_mgmt_1_port
-      - perimeta_ssc_b_unused_0_port
-      - perimeta_ssc_b_server_0
-      - perimeta_ssc_b_mgmt_0_port
-      - perimeta_ssc_b_ha_0_port
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_b_child
-    capabilities:
-      host_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - host
-      forwarder_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - forwarder
-      network.outgoing.packets.rate_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.outgoing.packets.rate
-      vcpus_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - vcpus
-      binding_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - binding
-      network.incoming.bytes_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.incoming.bytes
-      network.outpoing.packets_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.outpoing.packets
-      disk.write.requests_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.write.requests
-      os_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - os
-      forwarder_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - forwarder
-      memory_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - memory
-      disk.device.write.bytes.rate_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.write.bytes.rate
-      network.outgoing.bytes.rate_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.outgoing.bytes.rate
-      disk.read.bytes_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.read.bytes
-      network.outpoing.packets_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.outpoing.packets
-      network.outgoing.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.outgoing.packets.rate
-      disk.device.allocation_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.allocation
-      network.outgoing.packets.rate_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.outgoing.packets.rate
-      forwarder_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - forwarder
-      disk.write.requests.rate_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.write.requests.rate
-      network.incoming.bytes.rate_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.incoming.bytes.rate
-      binding_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - binding
-      disk.device.iops_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.iops
-      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.outgoing.packets.rate
-      disk.device.usage_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.usage
-      cpu_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - cpu
-      feature_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - feature
-      network.outgoing.bytes.rate_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.outgoing.bytes.rate
-      feature_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - feature
-      endpoint_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - endpoint
-      feature_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - feature
-      disk.device.read.requests_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.read.requests
-      attachment_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - attachment
-      cpu.delta_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - cpu.delta
-      network.incoming.packets_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.incoming.packets
-      disk.device.write.requests_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.write.requests
-      disk.device.write.bytes_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.write.bytes
-      disk.root.size_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.root.size
-      network.incoming.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.incoming.bytes.rate
-      memory.resident_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - memory.resident
-      network.incoming.packets.rate_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.incoming.packets.rate
-      disk.ephemeral.size_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.ephemeral.size
-      network.incoming.packets_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.incoming.packets
-      instance_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - instance
-      attachment_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - attachment
-      network.incoming.bytes_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.incoming.bytes
-      network.incoming.bytes_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.incoming.bytes
-      network.incoming.packets_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.incoming.packets
-      feature_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - feature
-      binding_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - binding
-      network.outpoing.packets_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.outpoing.packets
-      disk.device.read.bytes_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.read.bytes
-      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.outgoing.bytes.rate
-      disk.latency_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.latency
-      network.outgoing.bytes_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.outgoing.bytes
-      attachment_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - attachment
-      binding_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - binding
-      forwarder_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - forwarder
-      feature_perimeta_ssc_b_untrusted_0_vlan_ports:
-      - perimeta_ssc_b_untrusted_0_vlan_ports
-      - feature
-      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.outgoing.bytes.rate
-      network.outgoing.bytes_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.outgoing.bytes
-      network.incoming.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.incoming.packets.rate
-      disk.device.capacity_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.capacity
-      feature_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - feature
-      network.incoming.bytes.rate_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.incoming.bytes.rate
-      binding_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - binding
-      binding_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - binding
-      scalable_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - scalable
-      disk.device.latency_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.latency
-      forwarder_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - forwarder
-      network.incoming.packets_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.incoming.packets
-      disk.write.bytes.rate_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.write.bytes.rate
-      disk.read.requests_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.read.requests
-      feature_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - feature
-      disk.usage_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.usage
-      attachment_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - attachment
-      attachment_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - attachment
-      network.outgoing.bytes.rate_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.outgoing.bytes.rate
-      disk.allocation_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.allocation
-      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.incoming.bytes.rate
-      network.outgoing.bytes_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.outgoing.bytes
-      disk.iops_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.iops
-      disk.write.bytes_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.write.bytes
-      network.outpoing.packets_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.outpoing.packets
-      network.incoming.bytes_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.incoming.bytes
-      network.incoming.packets_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.incoming.packets
-      disk.device.read.requests.rate_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.read.requests.rate
-      network.incoming.packets.rate_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.incoming.packets.rate
-      network.incoming.packets_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.incoming.packets
-      network.outpoing.packets_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.outpoing.packets
-      network.outgoing.bytes_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.outgoing.bytes
-      network.incoming.bytes_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.incoming.bytes
-      network.incoming.packets.rate_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - network.incoming.packets.rate
-      memory.usage_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - memory.usage
-      network.incoming.bytes.rate_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.incoming.bytes.rate
-      network.incoming.packets.rate_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.incoming.packets.rate
-      forwarder_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - forwarder
-      network.outgoing.packets.rate_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.outgoing.packets.rate
-      network.incoming.bytes_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.incoming.bytes
-      network.outgoing.bytes_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - network.outgoing.bytes
-      feature_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:
-      - perimeta_ssc_b_untrusted_0_vlan_ports
-      - feature_contrail_vmi_subinterface
-      network.outgoing.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - network.outgoing.bytes.rate
-      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.outgoing.packets.rate
-      cpu_util_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - cpu_util
-      disk.device.read.bytes.rate_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.read.bytes.rate
-      disk.capacity_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.capacity
-      network.incoming.packets.rate_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - network.incoming.packets.rate
-      network.outgoing.bytes_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.outgoing.bytes
-      network.outpoing.packets_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - network.outpoing.packets
-      disk.read.bytes.rate_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.read.bytes.rate
-      disk.device.write.requests.rate_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - disk.device.write.requests.rate
-      attachment_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - attachment
-      feature_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - feature
-      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - network.incoming.bytes.rate
-      binding_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - binding
-    requirements:
-      link_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - link
-      dependency_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - dependency
-      dependency_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - dependency
-      dependency_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:
-      - perimeta_ssc_b_untrusted_0_vlan_ports
-      - dependency_contrail_vmi_subinterface
-      dependency_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - dependency
-      local_storage_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - local_storage
-      link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:
-      - perimeta_ssc_b_untrusted_0_vlan_ports
-      - link_contrail_vmi_subinterface
-      link_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - link
-      dependency_perimeta_ssc_b_trusted_0_port:
-      - perimeta_ssc_b_trusted_0_port
-      - dependency
-      dependency_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - dependency
-      link_perimeta_ssc_b_mgmt_1_port:
-      - perimeta_ssc_b_mgmt_1_port
-      - link
-      link_perimeta_ssc_b_untrusted_parent_0_port:
-      - perimeta_ssc_b_untrusted_parent_0_port
-      - link
-      dependency_perimeta_ssc_b_untrusted_0_vlan_ports:
-      - perimeta_ssc_b_untrusted_0_vlan_ports
-      - dependency
-      dependency_perimeta_ssc_b_server_0:
-      - perimeta_ssc_b_server_0
-      - dependency
-      link_perimeta_ssc_b_unused_0_port:
-      - perimeta_ssc_b_unused_0_port
-      - link
-      dependency_perimeta_ssc_b_mgmt_0_port:
-      - perimeta_ssc_b_mgmt_0_port
-      - dependency
-      link_perimeta_ssc_b_ha_0_port:
-      - perimeta_ssc_b_ha_0_port
-      - link
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: module_1_perimeta_swmu_b_child\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.ssc_b:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique ID for this VF Module instance\r
+    int_ha_network_plen:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Prefix length of subnet associated with internal HA network\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 31\r
+    unused_port_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Service network unused port network UUID\r
+    perimeta_server_group:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Server group to use for these VMs\r
+    ssc_b_name_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Name of Perimeta VM B instance\r
+    ssc_a_int_ha_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as HA IPs of A instance.\r
+    ssc_b_untrusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Untrusted/access fixed IP of B instance.\r
+    ssc_b_mgmt_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as management IP of B instance.\r
+    ssc_b_untrusted_parent_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Untrusted/access fixed IP of B parent instance.\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique name for this VNF instance\r
+    perimeta_untrusted_vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use on the untrusted/access network\r
+      entry_schema:\r
+        type: string\r
+    int_ha_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HA network id\r
+    ssc_b_int_ha_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as HA IP of B instance.\r
+    ssc_mgmt_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Management virtual IP address.\r
+    perimeta_keypair:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Keypair to use for accessing this Perimeta instance\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: VNF ID of this deployment\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Availability zone for B instances.  May be the same as A instance.\r
+    ssc_trusted_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Trusted/core virtual IP address.\r
+    ssc_untrusted_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Untrusted/access virtual IP address\r
+    perimeta_sec_groups:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of security groups to add on trusted interfaces.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_untrusted_num_vlans:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: number of VLANs to connect to the untrusted/access interface\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 1001\r
+    ssc_rf_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: RF virtual IP address to use for SSC.\r
+    ssc_b_trusted_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Trusted/core fixed IPs of B instance.\r
+    trusted_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Trusted/core network UUID\r
+    ssc_untrusted_parent_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Untrusted/access parent virtual IP address\r
+    ssc_untrusted_v6_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Untrusted/access alternate virtual IP address\r
+    ssc_b_untrusted_v6_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Fixed IP address to use as Untrusted/access alternate fixed IP of B instance.\r
+    vm_role:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Role of these VMs\r
+    perimeta_untrusted_vlan_networks:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Glance image for Perimeta instance\r
+    ssc_b_rf_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: RF fixed IP address to use for SSC B.\r
+    mgmt_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Management network id\r
+    int_untrusted_parent_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: internal Untrusted/access parent network id\r
+    perimeta_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor to use for creating VM instances\r
+  node_templates:\r
+    perimeta_ssc_b_trusted_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_b_trusted_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_trusted_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_trusted_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_b_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: trusted\r
+        network:\r
+          get_input: trusted_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_b_untrusted_parent_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_b_untrusted_parent_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_untrusted_parent_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_parent_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_b_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_untrusted_parent\r
+        network:\r
+          get_input: int_untrusted_parent_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_b_untrusted_0_vlan_ports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        perimeta_parent_interface: perimeta_ssc_b_untrusted_parent_0_port\r
+        perimeta_v6_vip_0:\r
+          get_input: ssc_untrusted_v6_vip_0\r
+        service_template_filter:\r
+          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml\r
+          count:\r
+            get_input: perimeta_untrusted_num_vlans\r
+          mandatory: false\r
+        perimeta_subinterface_name_prefix:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_port_vlan\r
+            params:\r
+              $VM:\r
+                get_input: ssc_b_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        perimeta_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        perimeta_subinterface_instance_index:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        perimeta_ip_0:\r
+          get_input: ssc_b_untrusted_ip_0\r
+        perimeta_vip_0:\r
+          get_input: ssc_untrusted_vip_0\r
+        perimeta_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        perimeta_mac_address:\r
+          get_attribute:\r
+          - perimeta_ssc_b_untrusted_parent_0_port\r
+          - mac_address\r
+        perimeta_v6_ip_0:\r
+          get_input: ssc_b_untrusted_v6_ip_0\r
+      requirements:\r
+      - binding_contrail_vmi_subinterface:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_b_untrusted_parent_0_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_b_mgmt_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_b_rf_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_rf_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_mgmt_1_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_b_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: mgmt\r
+        network:\r
+          get_input: mgmt_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_b_unused_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_unused_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_b_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: unused_port\r
+        network:\r
+          get_input: unused_port_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_b_server_0:\r
+      type: org.openecomp.resource.vfc.nodes.heat.ssc_b\r
+      properties:\r
+        flavor:\r
+          get_input: perimeta_flavor_name\r
+        key_name:\r
+          get_input: perimeta_keypair\r
+        availability_zone:\r
+          get_input: availability_zone_1\r
+        image:\r
+          get_input: perimeta_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vm_role:\r
+            str_replace:\r
+              template: $ROLE_b\r
+              params:\r
+                $ROLE:\r
+                  get_input: vm_role\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+          msw_template_version: 17.07.04 - 2017-09-01\r
+        config_drive: true\r
+        user_data_format: RAW\r
+        name:\r
+          get_input: ssc_b_name_0\r
+        scheduler_hints:\r
+          group:\r
+            get_input: perimeta_server_group\r
+    perimeta_ssc_b_mgmt_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: true\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_b_mgmt_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input: ssc_mgmt_vip_0\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_mgmt_0_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_b_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: mgmt\r
+        network:\r
+          get_input: mgmt_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_ssc_b_ha_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input: ssc_b_int_ha_ip_0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_ha_port\r
+            params:\r
+              $VM:\r
+                get_input: ssc_b_name_0\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_ha\r
+        network:\r
+          get_input: int_ha_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_ssc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+  groups:\r
+    module_1_perimeta_swmu_b_child_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_1_perimeta_swmu_b_child.yaml\r
+        description: |\r
+          HOT template to instantiate an B side Perimeta SSC instance with 6 vNICs as part of a nested template\r
+      members:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - perimeta_ssc_b_untrusted_0_vlan_ports\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - perimeta_ssc_b_unused_0_port\r
+      - perimeta_ssc_b_server_0\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - perimeta_ssc_b_ha_0_port\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.module_1_perimeta_swmu_b_child\r
+    capabilities:\r
+      host_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - host\r
+      forwarder_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - forwarder\r
+      network.outgoing.packets.rate_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.outgoing.packets.rate\r
+      vcpus_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - vcpus\r
+      binding_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - binding\r
+      network.incoming.bytes_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.incoming.bytes\r
+      network.outpoing.packets_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.outpoing.packets\r
+      disk.write.requests_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.write.requests\r
+      os_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - os\r
+      forwarder_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - forwarder\r
+      memory_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - memory\r
+      disk.device.write.bytes.rate_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.write.bytes.rate\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.outgoing.bytes.rate\r
+      disk.read.bytes_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.read.bytes\r
+      network.outpoing.packets_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.outpoing.packets\r
+      network.outgoing.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.outgoing.packets.rate\r
+      disk.device.allocation_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.allocation\r
+      network.outgoing.packets.rate_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.outgoing.packets.rate\r
+      forwarder_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - forwarder\r
+      disk.write.requests.rate_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.write.requests.rate\r
+      network.incoming.bytes.rate_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.incoming.bytes.rate\r
+      binding_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - binding\r
+      disk.device.iops_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.iops\r
+      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.device.usage_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.usage\r
+      cpu_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - cpu\r
+      feature_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - feature\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.outgoing.bytes.rate\r
+      feature_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - feature\r
+      endpoint_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - endpoint\r
+      feature_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - feature\r
+      disk.device.read.requests_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.read.requests\r
+      attachment_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - attachment\r
+      cpu.delta_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - cpu.delta\r
+      network.incoming.packets_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.incoming.packets\r
+      disk.device.write.requests_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.write.requests\r
+      disk.device.write.bytes_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.write.bytes\r
+      disk.root.size_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.root.size\r
+      network.incoming.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.incoming.bytes.rate\r
+      memory.resident_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - memory.resident\r
+      network.incoming.packets.rate_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.incoming.packets.rate\r
+      disk.ephemeral.size_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.ephemeral.size\r
+      network.incoming.packets_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.incoming.packets\r
+      instance_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - instance\r
+      attachment_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - attachment\r
+      network.incoming.bytes_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.packets_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.incoming.packets\r
+      feature_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - feature\r
+      binding_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - binding\r
+      network.outpoing.packets_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.outpoing.packets\r
+      disk.device.read.bytes_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.read.bytes\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.outgoing.bytes.rate\r
+      disk.latency_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.latency\r
+      network.outgoing.bytes_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.outgoing.bytes\r
+      attachment_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - attachment\r
+      binding_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - binding\r
+      forwarder_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - forwarder\r
+      feature_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_b_untrusted_0_vlan_ports\r
+      - feature\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.outgoing.bytes\r
+      network.incoming.packets.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.incoming.packets.rate\r
+      disk.device.capacity_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.capacity\r
+      feature_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - feature\r
+      network.incoming.bytes.rate_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.incoming.bytes.rate\r
+      binding_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - binding\r
+      binding_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - binding\r
+      scalable_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - scalable\r
+      disk.device.latency_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.latency\r
+      forwarder_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - forwarder\r
+      network.incoming.packets_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.incoming.packets\r
+      disk.write.bytes.rate_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.write.bytes.rate\r
+      disk.read.requests_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.read.requests\r
+      feature_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - feature\r
+      disk.usage_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.usage\r
+      attachment_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - attachment\r
+      attachment_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - attachment\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.outgoing.bytes.rate\r
+      disk.allocation_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.allocation\r
+      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.incoming.bytes.rate\r
+      network.outgoing.bytes_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.outgoing.bytes\r
+      disk.iops_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.iops\r
+      disk.write.bytes_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.write.bytes\r
+      network.outpoing.packets_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.outpoing.packets\r
+      network.incoming.bytes_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.incoming.bytes\r
+      network.incoming.packets_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.incoming.packets\r
+      disk.device.read.requests.rate_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.read.requests.rate\r
+      network.incoming.packets.rate_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.incoming.packets\r
+      network.outpoing.packets_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.outpoing.packets\r
+      network.outgoing.bytes_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.outgoing.bytes\r
+      network.incoming.bytes_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.packets.rate_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - network.incoming.packets.rate\r
+      memory.usage_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - memory.usage\r
+      network.incoming.bytes.rate_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.incoming.packets.rate\r
+      forwarder_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - forwarder\r
+      network.outgoing.packets.rate_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.outgoing.packets.rate\r
+      network.incoming.bytes_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - network.outgoing.bytes\r
+      feature_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_b_untrusted_0_vlan_ports\r
+      - feature_contrail_vmi_subinterface\r
+      network.outgoing.bytes.rate_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.packets.rate_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.outgoing.packets.rate\r
+      cpu_util_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - cpu_util\r
+      disk.device.read.bytes.rate_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.read.bytes.rate\r
+      disk.capacity_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.capacity\r
+      network.incoming.packets.rate_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - network.incoming.packets.rate\r
+      network.outgoing.bytes_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.outgoing.bytes\r
+      network.outpoing.packets_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - network.outpoing.packets\r
+      disk.read.bytes.rate_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.read.bytes.rate\r
+      disk.device.write.requests.rate_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - disk.device.write.requests.rate\r
+      attachment_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - attachment\r
+      feature_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - feature\r
+      network.incoming.bytes.rate_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - network.incoming.bytes.rate\r
+      binding_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - binding\r
+    requirements:\r
+      link_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - link\r
+      dependency_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - dependency\r
+      dependency_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - dependency\r
+      dependency_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_b_untrusted_0_vlan_ports\r
+      - dependency_contrail_vmi_subinterface\r
+      dependency_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - dependency\r
+      local_storage_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - local_storage\r
+      link_contrail_vmi_subinterface_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_b_untrusted_0_vlan_ports\r
+      - link_contrail_vmi_subinterface\r
+      link_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - link\r
+      dependency_perimeta_ssc_b_trusted_0_port:\r
+      - perimeta_ssc_b_trusted_0_port\r
+      - dependency\r
+      dependency_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - dependency\r
+      link_perimeta_ssc_b_mgmt_1_port:\r
+      - perimeta_ssc_b_mgmt_1_port\r
+      - link\r
+      link_perimeta_ssc_b_untrusted_parent_0_port:\r
+      - perimeta_ssc_b_untrusted_parent_0_port\r
+      - link\r
+      dependency_perimeta_ssc_b_untrusted_0_vlan_ports:\r
+      - perimeta_ssc_b_untrusted_0_vlan_ports\r
+      - dependency\r
+      dependency_perimeta_ssc_b_server_0:\r
+      - perimeta_ssc_b_server_0\r
+      - dependency\r
+      link_perimeta_ssc_b_unused_0_port:\r
+      - perimeta_ssc_b_unused_0_port\r
+      - link\r
+      dependency_perimeta_ssc_b_mgmt_0_port:\r
+      - perimeta_ssc_b_mgmt_0_port\r
+      - dependency\r
+      link_perimeta_ssc_b_ha_0_port:\r
+      - perimeta_ssc_b_ha_0_port\r
+      - link\r
\ No newline at end of file
index d5d91bb..50294fa 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: module_2_perimeta_sw_a_child
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.rtp_msc_a:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    vf_module_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique ID for this VF Module instance
-    int_ha_network_plen:
-      hidden: false
-      immutable: false
-      type: float
-      description: Prefix length of subnet associated with internal HA network
-      constraints:
-      - in_range:
-        - 0
-        - 31
-    perimeta_config:
-      hidden: false
-      immutable: false
-      type: string
-      description: JSON orchestration template configuration for instance.
-    vnf_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique name for this VNF instance
-    perimeta_untrusted_vlan_ids:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of VLAN IDs to use on the untrusted/access network
-      entry_schema:
-        type: string
-    int_ha_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: HA network id
-    perimeta_instance_index:
-      hidden: false
-      immutable: false
-      type: float
-      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
-      constraints:
-      - in_range:
-        - 0
-        - 19
-    perimeta_keypair:
-      hidden: false
-      immutable: false
-      type: string
-      description: Keypair to use for accessing this Perimeta instance
-    perimeta_server_groups:
-      hidden: false
-      immutable: false
-      type: list
-      description: Server groups to use for these VMs
-      entry_schema:
-        type: string
-    vnf_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: VNF ID of this deployment
-    availability_zone_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: Availability zone for A instances.
-    rtp_msc_mgmt_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of management virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    perimeta_sec_groups:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of security groups to add on trusted interfaces.
-      entry_schema:
-        type: string
-    rtp_msc_untrusted_parent_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Untrusted/access parent virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    perimeta_untrusted_num_vlans:
-      hidden: false
-      immutable: false
-      type: float
-      description: number of VLANs to connect to the untrusted/access interface
-      constraints:
-      - in_range:
-        - 1
-        - 1001
-    rtp_msc_a_int_ha_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as HA IPs of A instances.
-      entry_schema:
-        type: string
-    rtp_msc_a_untrusted_parent_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of A instances.
-      entry_schema:
-        type: string
-    rtp_msc_a_trusted_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Trusted/core fixed IPs of A instances.
-      entry_schema:
-        type: string
-    rtp_msc_untrusted_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Untrusted/access virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    trusted_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Trusted/core network UUID
-    rtp_msc_b_int_ha_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as HA IPs of B instances.
-      entry_schema:
-        type: string
-    rtp_msc_a_mgmt_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as management IPs of A instances.
-      entry_schema:
-        type: string
-    rtp_msc_a_untrusted_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Untrusted/access fixed IPs of A instances.
-      entry_schema:
-        type: string
-    vm_role:
-      hidden: false
-      immutable: false
-      type: string
-      description: Role of these VMs
-    rtp_msc_untrusted_v6_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Untrusted/access alternate virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    perimeta_untrusted_vlan_networks:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-      entry_schema:
-        type: string
-    rtp_msc_a_untrusted_v6_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of A instances.
-      entry_schema:
-        type: string
-    perimeta_image_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Glance image for Perimeta instance
-    mgmt_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Management network id
-    int_untrusted_parent_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: internal Untrusted/access parent network id
-    rtp_msc_a_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
-      entry_schema:
-        type: string
-    perimeta_flavor_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor to use for creating VM instances
-    rtp_msc_trusted_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Trusted/core virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-  node_templates:
-    perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-      type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual
-      directives:
-      - substitutable
-      properties:
-        perimeta_parent_interface: perimeta_rtp_msc_a_untrusted_parent_0_port
-        perimeta_v6_vip_0:
-          get_input:
-          - rtp_msc_untrusted_v6_vips
-          - get_input: perimeta_instance_index
-        service_template_filter:
-          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml
-          count:
-            get_input: perimeta_untrusted_num_vlans
-          mandatory: false
-        perimeta_subinterface_name_prefix:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_port_vlan
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_a_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        perimeta_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        perimeta_subinterface_instance_index:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-        perimeta_ip_0:
-          get_input:
-          - rtp_msc_a_untrusted_ips
-          - get_input: perimeta_instance_index
-        perimeta_vip_0:
-          get_input:
-          - rtp_msc_untrusted_vips
-          - get_input: perimeta_instance_index
-        perimeta_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        perimeta_mac_address:
-          get_attribute:
-          - perimeta_rtp_msc_a_untrusted_parent_0_port
-          - mac_address
-        perimeta_v6_ip_0:
-          get_input:
-          - rtp_msc_a_untrusted_v6_ips
-          - get_input: perimeta_instance_index
-      requirements:
-      - binding_contrail_vmi_subinterface:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_a_untrusted_parent_0_port
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_a_trusted_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_a_trusted_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input:
-            - rtp_msc_trusted_vips
-            - get_input: perimeta_instance_index
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_trusted_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_a_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: trusted
-        network:
-          get_input: trusted_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_a_ha_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_a_int_ha_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_ha_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_a_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_ha
-        network:
-          get_input: int_ha_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_a_untrusted_parent_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_a_untrusted_parent_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input:
-            - rtp_msc_untrusted_parent_vips
-            - get_input: perimeta_instance_index
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_parent_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_a_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_untrusted_parent
-        network:
-          get_input: int_untrusted_parent_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_a_server_0:
-      type: org.openecomp.resource.vfc.nodes.heat.rtp_msc_a
-      properties:
-        flavor:
-          get_input: perimeta_flavor_name
-        key_name:
-          get_input: perimeta_keypair
-        availability_zone:
-          get_input: availability_zone_0
-        image:
-          get_input: perimeta_image_name
-        metadata:
-          vf_module_id:
-            get_input: vf_module_id
-          vm_role:
-            str_replace:
-              template: $ROLE_a
-              params:
-                $ROLE:
-                  get_input: vm_role
-          vnf_id:
-            get_input: vnf_id
-          vnf_name:
-            get_input: vnf_name
-          msw_template_version: 17.07.04 - 2017-09-01
-        config_drive: true
-        personality:
-          /opt/MetaSwitch/init/custom.ini:
-            get_artifact:
-            - SELF
-            - custom
-        user_data_format: RAW
-        name:
-          get_input:
-          - rtp_msc_a_names
-          - get_input: perimeta_instance_index
-        scheduler_hints:
-          group:
-            get_input:
-            - perimeta_server_groups
-            - get_input: perimeta_instance_index
-      artifacts:
-        custom:
-          type: tosca.artifacts.Deployment
-          file: ../Artifacts/custom.ini
-    perimeta_rtp_msc_a_mgmt_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_a_mgmt_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input:
-            - rtp_msc_mgmt_vips
-            - get_input: perimeta_instance_index
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_mgmt_0_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_a_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: mgmt
-        network:
-          get_input: mgmt_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_a_server_0
-          relationship: tosca.relationships.network.BindsTo
-  groups:
-    module_2_perimeta_sw_a_child_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_2_perimeta_sw_a_child.yaml
-        description: |
-          HOT template to instantiate an A side Perimeta RTP MSC instance with 4 vNICs as part of a nested template
-      members:
-      - perimeta_rtp_msc_a_untrusted_0_vlan_ports
-      - perimeta_rtp_msc_a_trusted_0_port
-      - perimeta_rtp_msc_a_ha_0_port
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - perimeta_rtp_msc_a_server_0
-      - perimeta_rtp_msc_a_mgmt_0_port
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_a_child
-    capabilities:
-      attachment_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - attachment
-      disk.device.read.requests_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.read.requests
-      feature_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_a_untrusted_0_vlan_ports
-      - feature
-      attachment_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - attachment
-      feature_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - feature
-      disk.device.latency_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.latency
-      vcpus_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - vcpus
-      memory.resident_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - memory.resident
-      binding_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - binding
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.outgoing.packets.rate
-      network.incoming.bytes_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.incoming.bytes
-      attachment_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - attachment
-      cpu_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - cpu
-      disk.capacity_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.capacity
-      network.outgoing.bytes_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.outgoing.bytes
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.outgoing.bytes.rate
-      disk.read.bytes_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.read.bytes
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.outgoing.bytes.rate
-      network.outpoing.packets_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.outpoing.packets
-      os_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - os
-      feature_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - feature
-      network.incoming.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.incoming.packets
-      disk.device.allocation_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.allocation
-      disk.write.requests.rate_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.write.requests.rate
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.incoming.bytes.rate
-      network.incoming.bytes_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.incoming.bytes
-      disk.device.iops_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.iops
-      feature_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - feature
-      network.incoming.bytes_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.incoming.bytes
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.incoming.bytes.rate
-      forwarder_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - forwarder
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.incoming.bytes.rate
-      disk.device.usage_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.usage
-      disk.write.bytes_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.write.bytes
-      forwarder_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - forwarder
-      attachment_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - attachment
-      network.outgoing.bytes_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.outgoing.bytes
-      feature_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - feature
-      feature_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_a_untrusted_0_vlan_ports
-      - feature_contrail_vmi_subinterface
-      disk.usage_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.usage
-      binding_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - binding
-      disk.iops_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.iops
-      disk.allocation_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.allocation
-      disk.device.write.bytes.rate_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.write.bytes.rate
-      disk.device.capacity_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.capacity
-      network.outpoing.packets_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.outpoing.packets
-      disk.ephemeral.size_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.ephemeral.size
-      network.incoming.packets_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.incoming.packets
-      cpu_util_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - cpu_util
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.outgoing.bytes.rate
-      network.outgoing.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.outgoing.bytes.rate
-      network.incoming.packets_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.incoming.packets
-      forwarder_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - forwarder
-      scalable_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - scalable
-      host_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - host
-      disk.device.read.requests.rate_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.read.requests.rate
-      network.incoming.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.incoming.packets.rate
-      forwarder_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - forwarder
-      network.incoming.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.incoming.packets.rate
-      network.outgoing.bytes_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.outgoing.bytes
-      network.outpoing.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.outpoing.packets
-      network.outpoing.packets_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.outpoing.packets
-      network.incoming.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.incoming.bytes
-      disk.root.size_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.root.size
-      network.incoming.packets.rate_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.incoming.packets.rate
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.outgoing.packets.rate
-      disk.write.bytes.rate_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.write.bytes.rate
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.outgoing.packets.rate
-      endpoint_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - endpoint
-      feature_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - feature
-      network.incoming.packets_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.incoming.packets
-      binding_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - binding
-      disk.device.write.requests.rate_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.write.requests.rate
-      binding_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - binding
-      instance_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - instance
-      disk.read.bytes.rate_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.read.bytes.rate
-      binding_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - binding
-      disk.latency_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.latency
-      network.incoming.packets.rate_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - network.incoming.packets.rate
-      disk.device.read.bytes_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.read.bytes
-      network.outgoing.packets.rate_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - network.outgoing.packets.rate
-      disk.read.requests_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.read.requests
-      disk.device.read.bytes.rate_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.read.bytes.rate
-      disk.device.write.bytes_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.write.bytes
-      network.incoming.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - network.incoming.bytes.rate
-      memory_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - memory
-      network.outgoing.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - network.outgoing.bytes
-      disk.device.write.requests_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.device.write.requests
-      disk.write.requests_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - disk.write.requests
-      cpu.delta_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - cpu.delta
-      memory.usage_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - memory.usage
-    requirements:
-      link_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - link
-      local_storage_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - local_storage
-      dependency_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_a_untrusted_0_vlan_ports
-      - dependency_contrail_vmi_subinterface
-      dependency_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_a_untrusted_0_vlan_ports
-      - dependency
-      dependency_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - dependency
-      dependency_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - dependency
-      link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_a_untrusted_0_vlan_ports
-      - link_contrail_vmi_subinterface
-      link_perimeta_rtp_msc_a_untrusted_parent_0_port:
-      - perimeta_rtp_msc_a_untrusted_parent_0_port
-      - link
-      dependency_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - dependency
-      dependency_perimeta_rtp_msc_a_server_0:
-      - perimeta_rtp_msc_a_server_0
-      - dependency
-      dependency_perimeta_rtp_msc_a_trusted_0_port:
-      - perimeta_rtp_msc_a_trusted_0_port
-      - dependency
-      link_perimeta_rtp_msc_a_mgmt_0_port:
-      - perimeta_rtp_msc_a_mgmt_0_port
-      - link
-      link_perimeta_rtp_msc_a_ha_0_port:
-      - perimeta_rtp_msc_a_ha_0_port
-      - link
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: module_2_perimeta_sw_a_child\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.rtp_msc_a:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique ID for this VF Module instance\r
+    int_ha_network_plen:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Prefix length of subnet associated with internal HA network\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 31\r
+    perimeta_config:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: JSON orchestration template configuration for instance.\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique name for this VNF instance\r
+    perimeta_untrusted_vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use on the untrusted/access network\r
+      entry_schema:\r
+        type: string\r
+    int_ha_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HA network id\r
+    perimeta_instance_index:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 19\r
+    perimeta_keypair:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Keypair to use for accessing this Perimeta instance\r
+    perimeta_server_groups:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Server groups to use for these VMs\r
+      entry_schema:\r
+        type: string\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: VNF ID of this deployment\r
+    availability_zone_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Availability zone for A instances.\r
+    rtp_msc_mgmt_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of management virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_sec_groups:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of security groups to add on trusted interfaces.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_untrusted_parent_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Untrusted/access parent virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_untrusted_num_vlans:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: number of VLANs to connect to the untrusted/access interface\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 1001\r
+    rtp_msc_a_int_ha_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as HA IPs of A instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_untrusted_parent_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of A instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_trusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Trusted/core fixed IPs of A instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_untrusted_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Untrusted/access virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    trusted_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Trusted/core network UUID\r
+    rtp_msc_b_int_ha_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as HA IPs of B instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_mgmt_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as management IPs of A instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_untrusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Untrusted/access fixed IPs of A instances.\r
+      entry_schema:\r
+        type: string\r
+    vm_role:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Role of these VMs\r
+    rtp_msc_untrusted_v6_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Untrusted/access alternate virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_untrusted_vlan_networks:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_a_untrusted_v6_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of A instances.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Glance image for Perimeta instance\r
+    mgmt_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Management network id\r
+    int_untrusted_parent_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: internal Untrusted/access parent network id\r
+    rtp_msc_a_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index\r
+      entry_schema:\r
+        type: string\r
+    perimeta_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor to use for creating VM instances\r
+    rtp_msc_trusted_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Trusted/core virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        perimeta_parent_interface: perimeta_rtp_msc_a_untrusted_parent_0_port\r
+        perimeta_v6_vip_0:\r
+          get_input:\r
+          - rtp_msc_untrusted_v6_vips\r
+          - get_input: perimeta_instance_index\r
+        service_template_filter:\r
+          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml\r
+          count:\r
+            get_input: perimeta_untrusted_num_vlans\r
+          mandatory: false\r
+        perimeta_subinterface_name_prefix:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_port_vlan\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_a_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        perimeta_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        perimeta_subinterface_instance_index:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        perimeta_ip_0:\r
+          get_input:\r
+          - rtp_msc_a_untrusted_ips\r
+          - get_input: perimeta_instance_index\r
+        perimeta_vip_0:\r
+          get_input:\r
+          - rtp_msc_untrusted_vips\r
+          - get_input: perimeta_instance_index\r
+        perimeta_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        perimeta_mac_address:\r
+          get_attribute:\r
+          - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+          - mac_address\r
+        perimeta_v6_ip_0:\r
+          get_input:\r
+          - rtp_msc_a_untrusted_v6_ips\r
+          - get_input: perimeta_instance_index\r
+      requirements:\r
+      - binding_contrail_vmi_subinterface:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_a_untrusted_parent_0_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_a_trusted_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_a_trusted_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_trusted_vips\r
+            - get_input: perimeta_instance_index\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_trusted_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_a_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: trusted\r
+        network:\r
+          get_input: trusted_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_a_ha_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_a_int_ha_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_ha_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_a_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_ha\r
+        network:\r
+          get_input: int_ha_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_a_untrusted_parent_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_untrusted_parent_vips\r
+            - get_input: perimeta_instance_index\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_parent_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_a_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_untrusted_parent\r
+        network:\r
+          get_input: int_untrusted_parent_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_a_server_0:\r
+      type: org.openecomp.resource.vfc.nodes.heat.rtp_msc_a\r
+      properties:\r
+        flavor:\r
+          get_input: perimeta_flavor_name\r
+        key_name:\r
+          get_input: perimeta_keypair\r
+        availability_zone:\r
+          get_input: availability_zone_0\r
+        image:\r
+          get_input: perimeta_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vm_role:\r
+            str_replace:\r
+              template: $ROLE_a\r
+              params:\r
+                $ROLE:\r
+                  get_input: vm_role\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+          msw_template_version: 17.07.04 - 2017-09-01\r
+        config_drive: true\r
+        personality:\r
+          /opt/MetaSwitch/init/custom.ini:\r
+            get_artifact:\r
+            - SELF\r
+            - custom\r
+        user_data_format: RAW\r
+        name:\r
+          get_input:\r
+          - rtp_msc_a_names\r
+          - get_input: perimeta_instance_index\r
+        scheduler_hints:\r
+          group:\r
+            get_input:\r
+            - perimeta_server_groups\r
+            - get_input: perimeta_instance_index\r
+      artifacts:\r
+        custom:\r
+          type: tosca.artifacts.Deployment\r
+          file: ../Artifacts/custom.ini\r
+    perimeta_rtp_msc_a_mgmt_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_a_mgmt_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_mgmt_vips\r
+            - get_input: perimeta_instance_index\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_mgmt_0_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_a_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: mgmt\r
+        network:\r
+          get_input: mgmt_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_a_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+  groups:\r
+    module_2_perimeta_sw_a_child_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_2_perimeta_sw_a_child.yaml\r
+        description: |\r
+          HOT template to instantiate an A side Perimeta RTP MSC instance with 4 vNICs as part of a nested template\r
+      members:\r
+      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - perimeta_rtp_msc_a_server_0\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_a_child\r
+    capabilities:\r
+      attachment_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - attachment\r
+      disk.device.read.requests_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.read.requests\r
+      feature_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
+      - feature\r
+      attachment_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - attachment\r
+      feature_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - feature\r
+      disk.device.latency_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.latency\r
+      vcpus_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - vcpus\r
+      memory.resident_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - memory.resident\r
+      binding_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - binding\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.outgoing.packets.rate\r
+      network.incoming.bytes_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.incoming.bytes\r
+      attachment_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - attachment\r
+      cpu_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - cpu\r
+      disk.capacity_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.capacity\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.outgoing.bytes.rate\r
+      disk.read.bytes_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.read.bytes\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.outpoing.packets_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.outpoing.packets\r
+      os_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - os\r
+      feature_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - feature\r
+      network.incoming.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.incoming.packets\r
+      disk.device.allocation_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.allocation\r
+      disk.write.requests.rate_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.write.requests.rate\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.incoming.bytes\r
+      disk.device.iops_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.iops\r
+      feature_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - feature\r
+      network.incoming.bytes_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.incoming.bytes.rate\r
+      forwarder_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - forwarder\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.incoming.bytes.rate\r
+      disk.device.usage_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.usage\r
+      disk.write.bytes_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.write.bytes\r
+      forwarder_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - forwarder\r
+      attachment_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - attachment\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.outgoing.bytes\r
+      feature_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - feature\r
+      feature_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
+      - feature_contrail_vmi_subinterface\r
+      disk.usage_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.usage\r
+      binding_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - binding\r
+      disk.iops_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.iops\r
+      disk.allocation_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.allocation\r
+      disk.device.write.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.write.bytes.rate\r
+      disk.device.capacity_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.capacity\r
+      network.outpoing.packets_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.outpoing.packets\r
+      disk.ephemeral.size_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.ephemeral.size\r
+      network.incoming.packets_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.incoming.packets\r
+      cpu_util_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - cpu_util\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.packets_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.incoming.packets\r
+      forwarder_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - forwarder\r
+      scalable_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - scalable\r
+      host_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - host\r
+      disk.device.read.requests.rate_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.read.requests.rate\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.incoming.packets.rate\r
+      forwarder_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - forwarder\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.incoming.packets.rate\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.outgoing.bytes\r
+      network.outpoing.packets_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.outpoing.packets\r
+      network.incoming.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.incoming.bytes\r
+      disk.root.size_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.root.size\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.incoming.packets.rate\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.outgoing.packets.rate\r
+      disk.write.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.write.bytes.rate\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.outgoing.packets.rate\r
+      endpoint_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - endpoint\r
+      feature_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - feature\r
+      network.incoming.packets_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.incoming.packets\r
+      binding_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - binding\r
+      disk.device.write.requests.rate_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.write.requests.rate\r
+      binding_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - binding\r
+      instance_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - instance\r
+      disk.read.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.read.bytes.rate\r
+      binding_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - binding\r
+      disk.latency_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.latency\r
+      network.incoming.packets.rate_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - network.incoming.packets.rate\r
+      disk.device.read.bytes_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.read.bytes\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - network.outgoing.packets.rate\r
+      disk.read.requests_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.read.requests\r
+      disk.device.read.bytes.rate_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.write.bytes\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - network.incoming.bytes.rate\r
+      memory_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - memory\r
+      network.outgoing.bytes_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - network.outgoing.bytes\r
+      disk.device.write.requests_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.device.write.requests\r
+      disk.write.requests_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - disk.write.requests\r
+      cpu.delta_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - cpu.delta\r
+      memory.usage_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - memory.usage\r
+    requirements:\r
+      link_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - link\r
+      local_storage_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - local_storage\r
+      dependency_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
+      - dependency_contrail_vmi_subinterface\r
+      dependency_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - dependency\r
+      link_contrail_vmi_subinterface_perimeta_rtp_msc_a_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_a_untrusted_0_vlan_ports\r
+      - link_contrail_vmi_subinterface\r
+      link_perimeta_rtp_msc_a_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_a_untrusted_parent_0_port\r
+      - link\r
+      dependency_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_a_server_0:\r
+      - perimeta_rtp_msc_a_server_0\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_a_trusted_0_port:\r
+      - perimeta_rtp_msc_a_trusted_0_port\r
+      - dependency\r
+      link_perimeta_rtp_msc_a_mgmt_0_port:\r
+      - perimeta_rtp_msc_a_mgmt_0_port\r
+      - link\r
+      link_perimeta_rtp_msc_a_ha_0_port:\r
+      - perimeta_rtp_msc_a_ha_0_port\r
+      - link\r
\ No newline at end of file
index 6aca484..7fc9626 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: module_2_perimeta_sw_b_child
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.rtp_msc_b:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    vf_module_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique ID for this VF Module instance
-    int_ha_network_plen:
-      hidden: false
-      immutable: false
-      type: float
-      description: Prefix length of subnet associated with internal HA network
-      constraints:
-      - in_range:
-        - 0
-        - 31
-    rtp_msc_b_untrusted_v6_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of B instances.
-      entry_schema:
-        type: string
-    rtp_msc_b_mgmt_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as management IPs of B instances.
-      entry_schema:
-        type: string
-    vnf_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Unique name for this VNF instance
-    perimeta_untrusted_vlan_ids:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of VLAN IDs to use on the untrusted/access network
-      entry_schema:
-        type: string
-    rtp_msc_b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of names of Perimeta VM B instances, indexed by perimeta_instance_index
-      entry_schema:
-        type: string
-    rtp_msc_b_untrusted_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Untrusted/access fixed IPs of B instances.
-      entry_schema:
-        type: string
-    int_ha_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: HA network id
-    perimeta_instance_index:
-      hidden: false
-      immutable: false
-      type: float
-      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
-      constraints:
-      - in_range:
-        - 0
-        - 19
-    perimeta_keypair:
-      hidden: false
-      immutable: false
-      type: string
-      description: Keypair to use for accessing this Perimeta instance
-    perimeta_server_groups:
-      hidden: false
-      immutable: false
-      type: list
-      description: Server groups to use for these VMs
-      entry_schema:
-        type: string
-    vnf_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: VNF ID of this deployment
-    availability_zone_1:
-      hidden: false
-      immutable: false
-      type: string
-      description: Availability zone for B instances.  May be the same as A instance.
-    rtp_msc_mgmt_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of management virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    perimeta_sec_groups:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of security groups to add on trusted interfaces.
-      entry_schema:
-        type: string
-    rtp_msc_untrusted_parent_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Untrusted/access parent virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    perimeta_untrusted_num_vlans:
-      hidden: false
-      immutable: false
-      type: float
-      description: number of VLANs to connect to the untrusted/access interface
-      constraints:
-      - in_range:
-        - 1
-        - 1001
-    rtp_msc_a_int_ha_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as HA IPs of A instances.
-      entry_schema:
-        type: string
-    rtp_msc_b_trusted_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Trusted/core fixed IPs of B instances.
-      entry_schema:
-        type: string
-    rtp_msc_untrusted_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Untrusted/access virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    trusted_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Trusted/core network UUID
-    rtp_msc_b_int_ha_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as HA IPs of B instances.
-      entry_schema:
-        type: string
-    vm_role:
-      hidden: false
-      immutable: false
-      type: string
-      description: Role of these VMs
-    rtp_msc_untrusted_v6_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Untrusted/access alternate virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-    perimeta_untrusted_vlan_networks:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.
-      entry_schema:
-        type: string
-    perimeta_image_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Glance image for Perimeta instance
-    rtp_msc_b_untrusted_parent_ips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of B instances.
-      entry_schema:
-        type: string
-    mgmt_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: Management network id
-    int_untrusted_parent_net_id:
-      hidden: false
-      immutable: false
-      type: string
-      description: internal Untrusted/access parent network id
-    perimeta_flavor_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor to use for creating VM instances
-    rtp_msc_trusted_vips:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Trusted/core virtual IP addresses for all instances.
-      entry_schema:
-        type: string
-  node_templates:
-    perimeta_rtp_msc_b_trusted_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_b_trusted_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input:
-            - rtp_msc_trusted_vips
-            - get_input: perimeta_instance_index
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_trusted_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_b_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: trusted
-        network:
-          get_input: trusted_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_b_mgmt_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_b_mgmt_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input:
-            - rtp_msc_mgmt_vips
-            - get_input: perimeta_instance_index
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_mgmt_0_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_b_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: mgmt
-        network:
-          get_input: mgmt_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-      type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual
-      directives:
-      - substitutable
-      properties:
-        perimeta_parent_interface: perimeta_rtp_msc_b_untrusted_parent_0_port
-        perimeta_v6_vip_0:
-          get_input:
-          - rtp_msc_untrusted_v6_vips
-          - get_input: perimeta_instance_index
-        service_template_filter:
-          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml
-          count:
-            get_input: perimeta_untrusted_num_vlans
-          mandatory: false
-        perimeta_subinterface_name_prefix:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_port_vlan
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_b_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        perimeta_vlan_networks:
-          get_input: perimeta_untrusted_vlan_networks
-        perimeta_subinterface_instance_index:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-        perimeta_ip_0:
-          get_input:
-          - rtp_msc_b_untrusted_ips
-          - get_input: perimeta_instance_index
-        perimeta_vip_0:
-          get_input:
-          - rtp_msc_untrusted_vips
-          - get_input: perimeta_instance_index
-        perimeta_vlan_ids:
-          get_input: perimeta_untrusted_vlan_ids
-        perimeta_mac_address:
-          get_attribute:
-          - perimeta_rtp_msc_b_untrusted_parent_0_port
-          - mac_address
-        perimeta_v6_ip_0:
-          get_input:
-          - rtp_msc_b_untrusted_v6_ips
-          - get_input: perimeta_instance_index
-      requirements:
-      - binding_contrail_vmi_subinterface:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_b_untrusted_parent_0_port
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_b_server_0:
-      type: org.openecomp.resource.vfc.nodes.heat.rtp_msc_b
-      properties:
-        flavor:
-          get_input: perimeta_flavor_name
-        key_name:
-          get_input: perimeta_keypair
-        availability_zone:
-          get_input: availability_zone_1
-        image:
-          get_input: perimeta_image_name
-        metadata:
-          vf_module_id:
-            get_input: vf_module_id
-          vm_role:
-            str_replace:
-              template: $ROLE_b
-              params:
-                $ROLE:
-                  get_input: vm_role
-          vnf_id:
-            get_input: vnf_id
-          vnf_name:
-            get_input: vnf_name
-          msw_template_version: 17.07.04 - 2017-09-01
-        config_drive: true
-        user_data_format: RAW
-        name:
-          get_input:
-          - rtp_msc_b_names
-          - get_input: perimeta_instance_index
-        scheduler_hints:
-          group:
-            get_input:
-            - perimeta_server_groups
-            - get_input: perimeta_instance_index
-    perimeta_rtp_msc_b_ha_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_b_int_ha_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_ha_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_b_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_ha
-        network:
-          get_input: int_ha_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-    perimeta_rtp_msc_b_untrusted_parent_0_port:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-          get_input: perimeta_sec_groups
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - rtp_msc_b_untrusted_parent_ips
-            - get_input: perimeta_instance_index
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        allowed_address_pairs:
-        - ip_address:
-            get_input:
-            - rtp_msc_untrusted_parent_vips
-            - get_input: perimeta_instance_index
-        name:
-          str_replace:
-            template: $VNF_NAME_$VM_untrusted_parent_port
-            params:
-              $VM:
-                get_input:
-                - rtp_msc_b_names
-                - get_input: perimeta_instance_index
-              $VNF_NAME:
-                get_input: vnf_name
-        network_role_tag: int_untrusted_parent
-        network:
-          get_input: int_untrusted_parent_net_id
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: perimeta_rtp_msc_b_server_0
-          relationship: tosca.relationships.network.BindsTo
-  groups:
-    module_2_perimeta_sw_b_child_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/module_2_perimeta_sw_b_child.yaml
-        description: |
-          HOT template to instantiate an B side Perimeta RTP MSC instance with 4 vNICs as part of a nested template
-      members:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - perimeta_rtp_msc_b_untrusted_0_vlan_ports
-      - perimeta_rtp_msc_b_server_0
-      - perimeta_rtp_msc_b_ha_0_port
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_b_child
-    capabilities:
-      attachment_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - attachment
-      disk.read.requests_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.read.requests
-      forwarder_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - forwarder
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.incoming.bytes.rate
-      network.incoming.packets_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.incoming.packets
-      attachment_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - attachment
-      disk.device.read.requests.rate_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.read.requests.rate
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.outgoing.packets.rate
-      network.incoming.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.incoming.bytes
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.incoming.bytes.rate
-      disk.latency_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.latency
-      network.incoming.packets.rate_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.incoming.packets.rate
-      disk.device.write.requests_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.write.requests
-      disk.device.read.bytes.rate_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.read.bytes.rate
-      memory_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - memory
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.outgoing.bytes.rate
-      feature_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - feature
-      network.incoming.packets_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.incoming.packets
-      disk.ephemeral.size_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.ephemeral.size
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.outgoing.bytes.rate
-      feature_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_b_untrusted_0_vlan_ports
-      - feature_contrail_vmi_subinterface
-      attachment_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - attachment
-      disk.capacity_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.capacity
-      forwarder_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - forwarder
-      network.incoming.bytes_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.incoming.bytes
-      cpu_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - cpu
-      disk.device.capacity_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.capacity
-      binding_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - binding
-      disk.device.usage_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.usage
-      disk.device.allocation_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.allocation
-      disk.write.requests.rate_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.write.requests.rate
-      forwarder_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - forwarder
-      network.outpoing.packets_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.outpoing.packets
-      disk.root.size_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.root.size
-      cpu_util_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - cpu_util
-      disk.device.latency_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.latency
-      attachment_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - attachment
-      os_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - os
-      disk.device.write.bytes.rate_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.write.bytes.rate
-      network.outgoing.bytes_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.outgoing.bytes
-      disk.device.read.bytes_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.read.bytes
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.outgoing.packets.rate
-      network.incoming.packets_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.incoming.packets
-      forwarder_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - forwarder
-      disk.device.iops_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.iops
-      network.incoming.packets.rate_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.incoming.packets.rate
-      network.incoming.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.incoming.packets
-      disk.write.bytes_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.write.bytes
-      network.incoming.bytes_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.incoming.bytes
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.outgoing.bytes.rate
-      network.outgoing.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.outgoing.bytes
-      instance_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - instance
-      disk.device.write.requests.rate_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.write.requests.rate
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.outgoing.packets.rate
-      network.incoming.bytes_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.incoming.bytes
-      network.outgoing.bytes_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.outgoing.bytes
-      vcpus_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - vcpus
-      memory.resident_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - memory.resident
-      network.outgoing.bytes_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.outgoing.bytes
-      feature_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - feature
-      endpoint_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - endpoint
-      network.outpoing.packets_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.outpoing.packets
-      disk.write.requests_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.write.requests
-      feature_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_b_untrusted_0_vlan_ports
-      - feature
-      network.incoming.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.incoming.packets.rate
-      disk.read.bytes_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.read.bytes
-      disk.write.bytes.rate_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.write.bytes.rate
-      network.incoming.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.incoming.packets.rate
-      memory.usage_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - memory.usage
-      binding_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - binding
-      scalable_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - scalable
-      cpu.delta_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - cpu.delta
-      disk.device.write.bytes_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.write.bytes
-      network.outpoing.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.outpoing.packets
-      disk.allocation_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.allocation
-      feature_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - feature
-      disk.usage_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.usage
-      binding_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - binding
-      host_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - host
-      network.outpoing.packets_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.outpoing.packets
-      feature_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - feature
-      binding_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - binding
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - network.incoming.bytes.rate
-      network.outgoing.bytes.rate_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - network.outgoing.bytes.rate
-      disk.iops_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.iops
-      disk.device.read.requests_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.device.read.requests
-      network.incoming.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - network.incoming.bytes.rate
-      feature_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - feature
-      binding_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - binding
-      network.outgoing.packets.rate_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - network.outgoing.packets.rate
-      disk.read.bytes.rate_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - disk.read.bytes.rate
-    requirements:
-      dependency_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_b_untrusted_0_vlan_ports
-      - dependency_contrail_vmi_subinterface
-      dependency_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - dependency
-      dependency_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_b_untrusted_0_vlan_ports
-      - dependency
-      dependency_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - dependency
-      dependency_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - dependency
-      dependency_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - dependency
-      link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:
-      - perimeta_rtp_msc_b_untrusted_0_vlan_ports
-      - link_contrail_vmi_subinterface
-      link_perimeta_rtp_msc_b_trusted_0_port:
-      - perimeta_rtp_msc_b_trusted_0_port
-      - link
-      dependency_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - dependency
-      link_perimeta_rtp_msc_b_ha_0_port:
-      - perimeta_rtp_msc_b_ha_0_port
-      - link
-      local_storage_perimeta_rtp_msc_b_server_0:
-      - perimeta_rtp_msc_b_server_0
-      - local_storage
-      link_perimeta_rtp_msc_b_mgmt_0_port:
-      - perimeta_rtp_msc_b_mgmt_0_port
-      - link
-      link_perimeta_rtp_msc_b_untrusted_parent_0_port:
-      - perimeta_rtp_msc_b_untrusted_parent_0_port
-      - link
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: module_2_perimeta_sw_b_child\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.rtp_msc_b:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique ID for this VF Module instance\r
+    int_ha_network_plen:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Prefix length of subnet associated with internal HA network\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 31\r
+    rtp_msc_b_untrusted_v6_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Untrusted/access alternate fixed IPs of B instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_b_mgmt_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as management IPs of B instances.\r
+      entry_schema:\r
+        type: string\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique name for this VNF instance\r
+    perimeta_untrusted_vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use on the untrusted/access network\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of names of Perimeta VM B instances, indexed by perimeta_instance_index\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_b_untrusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Untrusted/access fixed IPs of B instances.\r
+      entry_schema:\r
+        type: string\r
+    int_ha_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HA network id\r
+    perimeta_instance_index:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 19\r
+    perimeta_keypair:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Keypair to use for accessing this Perimeta instance\r
+    perimeta_server_groups:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Server groups to use for these VMs\r
+      entry_schema:\r
+        type: string\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: VNF ID of this deployment\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Availability zone for B instances.  May be the same as A instance.\r
+    rtp_msc_mgmt_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of management virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_sec_groups:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of security groups to add on trusted interfaces.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_untrusted_parent_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Untrusted/access parent virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_untrusted_num_vlans:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: number of VLANs to connect to the untrusted/access interface\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 1001\r
+    rtp_msc_a_int_ha_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as HA IPs of A instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_b_trusted_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Trusted/core fixed IPs of B instances.\r
+      entry_schema:\r
+        type: string\r
+    rtp_msc_untrusted_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Untrusted/access virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    trusted_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Trusted/core network UUID\r
+    rtp_msc_b_int_ha_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as HA IPs of B instances.\r
+      entry_schema:\r
+        type: string\r
+    vm_role:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Role of these VMs\r
+    rtp_msc_untrusted_v6_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Untrusted/access alternate virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_untrusted_vlan_networks:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Contrail VLAN networks to use on the untrusted/access network.   The order and number of these must match the VLAN ID list.\r
+      entry_schema:\r
+        type: string\r
+    perimeta_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Glance image for Perimeta instance\r
+    rtp_msc_b_untrusted_parent_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of fixed IP addresses to use as Untrusted/access parent fixed IPs of B instances.\r
+      entry_schema:\r
+        type: string\r
+    mgmt_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Management network id\r
+    int_untrusted_parent_net_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: internal Untrusted/access parent network id\r
+    perimeta_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor to use for creating VM instances\r
+    rtp_msc_trusted_vips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Trusted/core virtual IP addresses for all instances.\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    perimeta_rtp_msc_b_trusted_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_b_trusted_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_trusted_vips\r
+            - get_input: perimeta_instance_index\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_trusted_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_b_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: trusted\r
+        network:\r
+          get_input: trusted_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_b_mgmt_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_b_mgmt_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_mgmt_vips\r
+            - get_input: perimeta_instance_index\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_mgmt_0_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_b_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: mgmt\r
+        network:\r
+          get_input: mgmt_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        perimeta_parent_interface: perimeta_rtp_msc_b_untrusted_parent_0_port\r
+        perimeta_v6_vip_0:\r
+          get_input:\r
+          - rtp_msc_untrusted_v6_vips\r
+          - get_input: perimeta_instance_index\r
+        service_template_filter:\r
+          substitute_service_template: vlan_subinterface_dualServiceTemplate.yaml\r
+          count:\r
+            get_input: perimeta_untrusted_num_vlans\r
+          mandatory: false\r
+        perimeta_subinterface_name_prefix:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_port_vlan\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_b_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        perimeta_vlan_networks:\r
+          get_input: perimeta_untrusted_vlan_networks\r
+        perimeta_subinterface_instance_index:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        perimeta_ip_0:\r
+          get_input:\r
+          - rtp_msc_b_untrusted_ips\r
+          - get_input: perimeta_instance_index\r
+        perimeta_vip_0:\r
+          get_input:\r
+          - rtp_msc_untrusted_vips\r
+          - get_input: perimeta_instance_index\r
+        perimeta_vlan_ids:\r
+          get_input: perimeta_untrusted_vlan_ids\r
+        perimeta_mac_address:\r
+          get_attribute:\r
+          - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+          - mac_address\r
+        perimeta_v6_ip_0:\r
+          get_input:\r
+          - rtp_msc_b_untrusted_v6_ips\r
+          - get_input: perimeta_instance_index\r
+      requirements:\r
+      - binding_contrail_vmi_subinterface:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_b_untrusted_parent_0_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_b_server_0:\r
+      type: org.openecomp.resource.vfc.nodes.heat.rtp_msc_b\r
+      properties:\r
+        flavor:\r
+          get_input: perimeta_flavor_name\r
+        key_name:\r
+          get_input: perimeta_keypair\r
+        availability_zone:\r
+          get_input: availability_zone_1\r
+        image:\r
+          get_input: perimeta_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vm_role:\r
+            str_replace:\r
+              template: $ROLE_b\r
+              params:\r
+                $ROLE:\r
+                  get_input: vm_role\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+          msw_template_version: 17.07.04 - 2017-09-01\r
+        config_drive: true\r
+        user_data_format: RAW\r
+        name:\r
+          get_input:\r
+          - rtp_msc_b_names\r
+          - get_input: perimeta_instance_index\r
+        scheduler_hints:\r
+          group:\r
+            get_input:\r
+            - perimeta_server_groups\r
+            - get_input: perimeta_instance_index\r
+    perimeta_rtp_msc_b_ha_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_b_int_ha_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_ha_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_b_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_ha\r
+        network:\r
+          get_input: int_ha_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+    perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+          get_input: perimeta_sec_groups\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_b_untrusted_parent_ips\r
+            - get_input: perimeta_instance_index\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        allowed_address_pairs:\r
+        - ip_address:\r
+            get_input:\r
+            - rtp_msc_untrusted_parent_vips\r
+            - get_input: perimeta_instance_index\r
+        name:\r
+          str_replace:\r
+            template: $VNF_NAME_$VM_untrusted_parent_port\r
+            params:\r
+              $VM:\r
+                get_input:\r
+                - rtp_msc_b_names\r
+                - get_input: perimeta_instance_index\r
+              $VNF_NAME:\r
+                get_input: vnf_name\r
+        network_role_tag: int_untrusted_parent\r
+        network:\r
+          get_input: int_untrusted_parent_net_id\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: perimeta_rtp_msc_b_server_0\r
+          relationship: tosca.relationships.network.BindsTo\r
+  groups:\r
+    module_2_perimeta_sw_b_child_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/module_2_perimeta_sw_b_child.yaml\r
+        description: |\r
+          HOT template to instantiate an B side Perimeta RTP MSC instance with 4 vNICs as part of a nested template\r
+      members:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
+      - perimeta_rtp_msc_b_server_0\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.module_2_perimeta_sw_b_child\r
+    capabilities:\r
+      attachment_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - attachment\r
+      disk.read.requests_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.read.requests\r
+      forwarder_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - forwarder\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.incoming.packets\r
+      attachment_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - attachment\r
+      disk.device.read.requests.rate_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.read.requests.rate\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.outgoing.packets.rate\r
+      network.incoming.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.incoming.bytes\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.incoming.bytes.rate\r
+      disk.latency_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.latency\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.incoming.packets.rate\r
+      disk.device.write.requests_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.write.requests\r
+      disk.device.read.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.read.bytes.rate\r
+      memory_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - memory\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.outgoing.bytes.rate\r
+      feature_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - feature\r
+      network.incoming.packets_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.incoming.packets\r
+      disk.ephemeral.size_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.ephemeral.size\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.outgoing.bytes.rate\r
+      feature_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
+      - feature_contrail_vmi_subinterface\r
+      attachment_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - attachment\r
+      disk.capacity_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.capacity\r
+      forwarder_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - forwarder\r
+      network.incoming.bytes_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.incoming.bytes\r
+      cpu_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - cpu\r
+      disk.device.capacity_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.capacity\r
+      binding_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - binding\r
+      disk.device.usage_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.usage\r
+      disk.device.allocation_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.allocation\r
+      disk.write.requests.rate_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.write.requests.rate\r
+      forwarder_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - forwarder\r
+      network.outpoing.packets_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.outpoing.packets\r
+      disk.root.size_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.root.size\r
+      cpu_util_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - cpu_util\r
+      disk.device.latency_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.latency\r
+      attachment_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - attachment\r
+      os_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - os\r
+      disk.device.write.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.write.bytes.rate\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.outgoing.bytes\r
+      disk.device.read.bytes_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.read.bytes\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.outgoing.packets.rate\r
+      network.incoming.packets_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.incoming.packets\r
+      forwarder_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - forwarder\r
+      disk.device.iops_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.iops\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.incoming.packets\r
+      disk.write.bytes_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.write.bytes\r
+      network.incoming.bytes_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.outgoing.bytes\r
+      instance_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - instance\r
+      disk.device.write.requests.rate_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.write.requests.rate\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.outgoing.packets.rate\r
+      network.incoming.bytes_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.outgoing.bytes\r
+      vcpus_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - vcpus\r
+      memory.resident_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - memory.resident\r
+      network.outgoing.bytes_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.outgoing.bytes\r
+      feature_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - feature\r
+      endpoint_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - endpoint\r
+      network.outpoing.packets_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.outpoing.packets\r
+      disk.write.requests_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.write.requests\r
+      feature_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
+      - feature\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.incoming.packets.rate\r
+      disk.read.bytes_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.read.bytes\r
+      disk.write.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.write.bytes.rate\r
+      network.incoming.packets.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.incoming.packets.rate\r
+      memory.usage_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - memory.usage\r
+      binding_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - binding\r
+      scalable_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - scalable\r
+      cpu.delta_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - cpu.delta\r
+      disk.device.write.bytes_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.write.bytes\r
+      network.outpoing.packets_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.outpoing.packets\r
+      disk.allocation_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.allocation\r
+      feature_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - feature\r
+      disk.usage_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.usage\r
+      binding_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - binding\r
+      host_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - host\r
+      network.outpoing.packets_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.outpoing.packets\r
+      feature_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - feature\r
+      binding_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - binding\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - network.incoming.bytes.rate\r
+      network.outgoing.bytes.rate_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - network.outgoing.bytes.rate\r
+      disk.iops_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.iops\r
+      disk.device.read.requests_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.device.read.requests\r
+      network.incoming.bytes.rate_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - network.incoming.bytes.rate\r
+      feature_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - feature\r
+      binding_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - binding\r
+      network.outgoing.packets.rate_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - network.outgoing.packets.rate\r
+      disk.read.bytes.rate_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - disk.read.bytes.rate\r
+    requirements:\r
+      dependency_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
+      - dependency_contrail_vmi_subinterface\r
+      dependency_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - dependency\r
+      dependency_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - dependency\r
+      link_contrail_vmi_subinterface_perimeta_rtp_msc_b_untrusted_0_vlan_ports:\r
+      - perimeta_rtp_msc_b_untrusted_0_vlan_ports\r
+      - link_contrail_vmi_subinterface\r
+      link_perimeta_rtp_msc_b_trusted_0_port:\r
+      - perimeta_rtp_msc_b_trusted_0_port\r
+      - link\r
+      dependency_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - dependency\r
+      link_perimeta_rtp_msc_b_ha_0_port:\r
+      - perimeta_rtp_msc_b_ha_0_port\r
+      - link\r
+      local_storage_perimeta_rtp_msc_b_server_0:\r
+      - perimeta_rtp_msc_b_server_0\r
+      - local_storage\r
+      link_perimeta_rtp_msc_b_mgmt_0_port:\r
+      - perimeta_rtp_msc_b_mgmt_0_port\r
+      - link\r
+      link_perimeta_rtp_msc_b_untrusted_parent_0_port:\r
+      - perimeta_rtp_msc_b_untrusted_parent_0_port\r
+      - link\r
\ No newline at end of file
index d9cb24a..12a1064 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: vlan_subinterface_dual
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    perimeta_parent_interface:
-      hidden: false
-      immutable: false
-      type: string
-      description: Parent Contrail interface
-    perimeta_v6_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: virtual IPv6 address associated with subinterfaces
-    perimeta_subinterface_name_prefix:
-      hidden: false
-      immutable: false
-      type: string
-      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
-    perimeta_vlan_networks:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
-      entry_schema:
-        type: string
-    perimeta_subinterface_instance_index:
-      hidden: false
-      immutable: false
-      type: float
-      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
-      constraints:
-      - in_range:
-        - 1
-        - 1001
-    perimeta_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: IPv4 address associated with subinterfaces
-    perimeta_vip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: virtual IPv4 address associated with subinterfaces
-    perimeta_vlan_ids:
-      hidden: false
-      immutable: false
-      type: list
-      description: List of VLAN IDs to use for subinterfaces
-      entry_schema:
-        type: string
-    perimeta_mac_address:
-      hidden: false
-      immutable: false
-      type: string
-      description: MAC address to use for subinterface
-    perimeta_v6_ip_0:
-      hidden: false
-      immutable: false
-      type: string
-      description: IPv6 address associated with subinterfaces
-  node_templates:
-    contrail_vmi_subinterface:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - get_input: perimeta_parent_interface
-        name:
-          str_replace:
-            template: $NAME_$VLAN
-            params:
-              $NAME:
-                get_input: perimeta_subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - perimeta_vlan_ids
-                - get_input: perimeta_subinterface_instance_index
-        virtual_network_refs:
-        - get_input:
-          - perimeta_vlan_networks
-          - get_input: perimeta_subinterface_instance_index
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input:
-            - perimeta_vlan_ids
-            - get_input: perimeta_subinterface_instance_index
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: perimeta_vip_0
-              ip_prefix_len: 32
-            mac:
-              get_input: perimeta_mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: perimeta_v6_vip_0
-              ip_prefix_len: 128
-            mac:
-              get_input: perimeta_mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: perimeta_mac_address
-  groups:
-    vlan_subinterface_dual_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/vlan_subinterface_dual.yaml
-        description: |
-          HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs
-      members:
-      - contrail_vmi_subinterface
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.vlan_subinterface_dual
-    capabilities:
-      feature_contrail_vmi_subinterface:
-      - contrail_vmi_subinterface
-      - feature
-    requirements:
-      binding_contrail_vmi_subinterface:
-      - contrail_vmi_subinterface
-      - binding
-      link_contrail_vmi_subinterface:
-      - contrail_vmi_subinterface
-      - link
-      dependency_contrail_vmi_subinterface:
-      - contrail_vmi_subinterface
-      - dependency
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vlan_subinterface_dual\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    perimeta_parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    perimeta_v6_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual IPv6 address associated with subinterfaces\r
+    perimeta_subinterface_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    perimeta_vlan_networks:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+      entry_schema:\r
+        type: string\r
+    perimeta_subinterface_instance_index:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 1001\r
+    perimeta_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    perimeta_vip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual IPv4 address associated with subinterfaces\r
+    perimeta_vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    perimeta_mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: MAC address to use for subinterface\r
+    perimeta_v6_ip_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+  node_templates:\r
+    contrail_vmi_subinterface:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: perimeta_parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$VLAN\r
+            params:\r
+              $NAME:\r
+                get_input: perimeta_subinterface_name_prefix\r
+              $VLAN:\r
+                get_input:\r
+                - perimeta_vlan_ids\r
+                - get_input: perimeta_subinterface_instance_index\r
+        virtual_network_refs:\r
+        - get_input:\r
+          - perimeta_vlan_networks\r
+          - get_input: perimeta_subinterface_instance_index\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - perimeta_vlan_ids\r
+            - get_input: perimeta_subinterface_instance_index\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode: active-standby\r
+            ip:\r
+              ip_prefix:\r
+                get_input: perimeta_vip_0\r
+              ip_prefix_len: 32\r
+            mac:\r
+              get_input: perimeta_mac_address\r
+          - address_mode: active-standby\r
+            ip:\r
+              ip_prefix:\r
+                get_input: perimeta_v6_vip_0\r
+              ip_prefix_len: 128\r
+            mac:\r
+              get_input: perimeta_mac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: perimeta_mac_address\r
+  groups:\r
+    vlan_subinterface_dual_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vlan_subinterface_dual.yaml\r
+        description: |\r
+          HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs\r
+      members:\r
+      - contrail_vmi_subinterface\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan_subinterface_dual\r
+    capabilities:\r
+      feature_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - feature\r
+    requirements:\r
+      binding_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - binding\r
+      link_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - link\r
+      dependency_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - dependency\r
\ No newline at end of file
index cbaf2ce..97fee65 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.cmaui:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    cmaui_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: cmaui_names
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    p1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: p1
-      type: string
-      description: UID of OAM network
-    template_PortTuple_LB1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: template_PortTuple_LB1
-      type: string
-    oam_sec_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: oam_sec_group_name
-      type: string
-    lb_st_interface_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: lb_st_interface_type_oam
-      type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: security_group_name
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    shared_network_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: shared_network_id
-      type: string
-      description: Flavor for CMAUI server
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: network name of jsa log network
-    shared_network_id1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: shared_network_id1
-      type: string
-      description: Flavor for CMAUI server
-    cmaui_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: cmaui_image
-      type: string
-      description: Image for CMAUI server
-    cmaui_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: cmaui_flavor
-      type: string
-      description: Flavor for CMAUI server
-    shared_network_id2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: shared_network_id2
-      type: list
-      description: Flavor for CMAUI server
-      entry_schema:
-        type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: availability_zone_0
-      type: string
-      description: availabilityzone name
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - addOn
-            source_type: HEAT
-            param_name: cmaui_oam_ips
-      type: string
-  node_templates:
-    template_VMInt_OAM_lb_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_input: shared_network_id
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: server_cmaui
-          relationship: tosca.relationships.network.BindsTo
-    template_VMInt_OAM_lb_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_input: shared_network_id
-        - get_input: shared_network_id1
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: server_cmaui
-          relationship: tosca.relationships.network.BindsTo
-    template_VMInt_OAM_lb_3:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_input:
-          - shared_network_id2
-          - 0
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    test_net1:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        shared: true
-        network_name:
-          get_input: jsa_net_name
-    server_cmaui:
-      type: org.openecomp.resource.vfc.nodes.heat.cmaui
-      properties:
-        flavor:
-          get_input: cmaui_flavor
-        availability_zone:
-          get_input: availability_zone_0
-        image:
-          get_input: cmaui_image
-        contrail_service_instance_ind: true
-        name:
-          get_input:
-          - cmaui_names
-          - 0
-    test_net:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        shared: true
-        network_name:
-          get_input: jsa_net_name
-  groups:
-    main_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/main.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-      members:
-      - test_net1
-      - test_net
-    addOn_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/addOn.yml
-        description: cmaui server template for vMMSC
-      members:
-      - template_VMInt_OAM_lb_1
-      - template_VMInt_OAM_lb_2
-      - template_VMInt_OAM_lb_3
-      - server_cmaui
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: jsa_net_name\r
+      type: string\r
+      description: network name of jsa log network\r
+  node_templates:\r
+    test_net1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        shared: true\r
+        network_name:\r
+          get_input: jsa_net_name\r
+    test_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        shared: true\r
+        network_name:\r
+          get_input: jsa_net_name\r
+    test_vmi:\r
+      type: org.openecomp.resource.abstract.nodes.heat.addOn\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: addOnServiceTemplate.yaml\r
+          count: 2\r
+          mandatory: true\r
+        indx:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - test_net1\r
+      - test_net\r
+      - test_vmi\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedAddOn/expectedoutputfiles/addOnServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedAddOn/expectedoutputfiles/addOnServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..927c36d
--- /dev/null
@@ -0,0 +1,409 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: addOn
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.cmaui:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    cmaui_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UID of OAM network
+    template_PortTuple_LB1:
+      hidden: false
+      immutable: false
+      type: string
+    oam_sec_group_name:
+      hidden: false
+      immutable: false
+      type: string
+    lb_st_interface_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+    security_group_name:
+      hidden: false
+      immutable: false
+      type: list
+      description: CMAUI1, CMAUI2 server names
+      entry_schema:
+        type: string
+    shared_network_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    shared_network_id1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    cmaui_image:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image for CMAUI server
+    cmaui_flavor:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor for CMAUI server
+    shared_network_id2:
+      hidden: false
+      immutable: false
+      type: list
+      description: Flavor for CMAUI server
+      entry_schema:
+        type: string
+    availability_zone_0:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      type: string
+      description: availabilityzone name
+    cmaui_oam_ips:
+      hidden: false
+      immutable: false
+      type: string
+  node_templates:
+    template_VMInt_OAM_lb_1:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        security_group_refs:
+        - get_input: oam_sec_group_name
+        virtual_network_refs:
+        - get_input: shared_network_id
+        virtual_machine_interface_properties:
+          service_interface_type:
+            get_input: lb_st_interface_type_oam
+        port_tuple_refs:
+        - get_input: template_PortTuple_LB1
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_cmaui
+          relationship: tosca.relationships.network.BindsTo
+    template_VMInt_OAM_lb_2:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        security_group_refs:
+        - get_input: oam_sec_group_name
+        virtual_network_refs:
+        - get_input: shared_network_id
+        - get_input: shared_network_id1
+        virtual_machine_interface_properties:
+          service_interface_type:
+            get_input: lb_st_interface_type_oam
+        port_tuple_refs:
+        - get_input: template_PortTuple_LB1
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: server_cmaui
+          relationship: tosca.relationships.network.BindsTo
+    template_VMInt_OAM_lb_3:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        security_group_refs:
+        - get_input: oam_sec_group_name
+        virtual_network_refs:
+        - get_input:
+          - shared_network_id2
+          - 0
+        virtual_machine_interface_properties:
+          service_interface_type:
+            get_input: lb_st_interface_type_oam
+        port_tuple_refs:
+        - get_input: template_PortTuple_LB1
+    server_cmaui:
+      type: org.openecomp.resource.vfc.nodes.heat.cmaui
+      properties:
+        flavor:
+          get_input: cmaui_flavor
+        availability_zone:
+          get_input: availability_zone_0
+        image:
+          get_input: cmaui_image
+        contrail_service_instance_ind: true
+        name:
+          get_input:
+          - cmaui_names
+          - 0
+  groups:
+    addOn_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/addOn.yml
+        description: cmaui server template for vMMSC
+      members:
+      - template_VMInt_OAM_lb_1
+      - template_VMInt_OAM_lb_2
+      - template_VMInt_OAM_lb_3
+      - server_cmaui
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.addOn
+    capabilities:
+      cpu.delta_server_cmaui:
+      - server_cmaui
+      - cpu.delta
+      disk.device.write.requests.rate_server_cmaui:
+      - server_cmaui
+      - disk.device.write.requests.rate
+      disk.device.allocation_server_cmaui:
+      - server_cmaui
+      - disk.device.allocation
+      scalable_server_cmaui:
+      - server_cmaui
+      - scalable
+      disk.read.bytes.rate_server_cmaui:
+      - server_cmaui
+      - disk.read.bytes.rate
+      cpu_server_cmaui:
+      - server_cmaui
+      - cpu
+      disk.write.bytes.rate_server_cmaui:
+      - server_cmaui
+      - disk.write.bytes.rate
+      disk.device.read.bytes.rate_server_cmaui:
+      - server_cmaui
+      - disk.device.read.bytes.rate
+      host_server_cmaui:
+      - server_cmaui
+      - host
+      cpu_util_server_cmaui:
+      - server_cmaui
+      - cpu_util
+      forwarder_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - forwarder
+      binding_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - binding
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.outgoing.bytes.rate
+      disk.device.latency_server_cmaui:
+      - server_cmaui
+      - disk.device.latency
+      disk.device.write.requests_server_cmaui:
+      - server_cmaui
+      - disk.device.write.requests
+      disk.read.requests_server_cmaui:
+      - server_cmaui
+      - disk.read.requests
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.outgoing.bytes.rate
+      network.incoming.bytes_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.incoming.bytes
+      disk.device.capacity_server_cmaui:
+      - server_cmaui
+      - disk.device.capacity
+      network.incoming.bytes_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.incoming.bytes
+      forwarder_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - forwarder
+      disk.usage_server_cmaui:
+      - server_cmaui
+      - disk.usage
+      network.incoming.bytes_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.incoming.bytes
+      forwarder_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - forwarder
+      disk.device.usage_server_cmaui:
+      - server_cmaui
+      - disk.device.usage
+      disk.capacity_server_cmaui:
+      - server_cmaui
+      - disk.capacity
+      disk.write.requests.rate_server_cmaui:
+      - server_cmaui
+      - disk.write.requests.rate
+      network.incoming.packets.rate_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.incoming.packets.rate
+      disk.device.read.requests_server_cmaui:
+      - server_cmaui
+      - disk.device.read.requests
+      feature_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - feature
+      feature_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - feature
+      instance_server_cmaui:
+      - server_cmaui
+      - instance
+      disk.device.read.bytes_server_cmaui:
+      - server_cmaui
+      - disk.device.read.bytes
+      feature_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - feature
+      memory_server_cmaui:
+      - server_cmaui
+      - memory
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.outgoing.packets.rate
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.outgoing.packets.rate
+      disk.root.size_server_cmaui:
+      - server_cmaui
+      - disk.root.size
+      binding_server_cmaui:
+      - server_cmaui
+      - binding
+      disk.device.read.requests.rate_server_cmaui:
+      - server_cmaui
+      - disk.device.read.requests.rate
+      disk.write.bytes_server_cmaui:
+      - server_cmaui
+      - disk.write.bytes
+      os_server_cmaui:
+      - server_cmaui
+      - os
+      disk.device.write.bytes.rate_server_cmaui:
+      - server_cmaui
+      - disk.device.write.bytes.rate
+      network.outpoing.packets_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.outpoing.packets
+      network.outpoing.packets_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.outpoing.packets
+      network.outpoing.packets_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.outpoing.packets
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.outgoing.packets.rate
+      network.incoming.packets_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.incoming.packets
+      network.incoming.packets_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.incoming.packets
+      network.outgoing.bytes_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.outgoing.bytes
+      network.incoming.packets_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.incoming.packets
+      network.outgoing.bytes_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.outgoing.bytes
+      network.outgoing.bytes_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.outgoing.bytes
+      memory.resident_server_cmaui:
+      - server_cmaui
+      - memory.resident
+      disk.latency_server_cmaui:
+      - server_cmaui
+      - disk.latency
+      feature_server_cmaui:
+      - server_cmaui
+      - feature
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.outgoing.bytes.rate
+      vcpus_server_cmaui:
+      - server_cmaui
+      - vcpus
+      disk.device.write.bytes_server_cmaui:
+      - server_cmaui
+      - disk.device.write.bytes
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - network.incoming.bytes.rate
+      binding_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - binding
+      binding_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - binding
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - network.incoming.bytes.rate
+      disk.allocation_server_cmaui:
+      - server_cmaui
+      - disk.allocation
+      disk.write.requests_server_cmaui:
+      - server_cmaui
+      - disk.write.requests
+      memory.usage_server_cmaui:
+      - server_cmaui
+      - memory.usage
+      disk.ephemeral.size_server_cmaui:
+      - server_cmaui
+      - disk.ephemeral.size
+      endpoint_server_cmaui:
+      - server_cmaui
+      - endpoint
+      disk.iops_server_cmaui:
+      - server_cmaui
+      - disk.iops
+      disk.device.iops_server_cmaui:
+      - server_cmaui
+      - disk.device.iops
+      disk.read.bytes_server_cmaui:
+      - server_cmaui
+      - disk.read.bytes
+    requirements:
+      link_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - link
+      dependency_server_cmaui:
+      - server_cmaui
+      - dependency
+      local_storage_server_cmaui:
+      - server_cmaui
+      - local_storage
+      link_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - link
+      link_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - link
+      dependency_template_VMInt_OAM_lb_1:
+      - template_VMInt_OAM_lb_1
+      - dependency
+      dependency_template_VMInt_OAM_lb_2:
+      - template_VMInt_OAM_lb_2
+      - dependency
+      dependency_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - dependency
+      binding_template_VMInt_OAM_lb_3:
+      - template_VMInt_OAM_lb_3
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles/MainServiceTemplate.yaml
deleted file mode 100644 (file)
index e196524..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    template_PortTuple_LB1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: template_PortTuple_LB1
-      type: string
-      description: dummy
-    lb_st_interface_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: lb_st_interface_type_oam
-      type: string
-      description: dummy
-    oam_sec_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: oam_sec_group_name
-      type: string
-      description: dummy
-    nems_traffic_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: nems_traffic_name
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_addr_from_start_true:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-      type: string
-      description: dummy
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-      type: string
-      description: dummy
-  node_templates:
-    jsa_net3:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    template_VMInt_OAM_lb_5:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs: [
-          ]
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    jsa_net2:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    template_VMInt_OAM_lb_6:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-          get_attribute:
-          - jsa_net3
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    template_VMInt_OAM_lb_7:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    jsa_net5:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    jsa_net4:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
-      properties:
-        network_name:
-          get_input: nems_traffic_name
-    template_VMInt_OAM_lb_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - jsa_net1
-        - jsa_net5
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net2
-            - fq_name
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net5
-            - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net2
-          relationship: tosca.relationships.network.LinksTo
-    jsa_net1:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    template_VMInt_OAM_lb_3:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net3
-          - fq_name
-        - get_attribute:
-          - jsa_net5
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net3
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_4:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net4
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-  groups:
-    hot_template_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot_template.yml
-        description: cmaui server template for vMMSC
-      members:
-      - jsa_net3
-      - template_VMInt_OAM_lb_5
-      - jsa_net2
-      - template_VMInt_OAM_lb_6
-      - template_VMInt_OAM_lb_7
-      - jsa_net5
-      - jsa_net4
-      - template_VMInt_OAM_lb_1
-      - template_VMInt_OAM_lb_2
-      - jsa_net1
-      - template_VMInt_OAM_lb_3
-      - template_VMInt_OAM_lb_4
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles/hot_templateServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles/hot_templateServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..84301a0
--- /dev/null
@@ -0,0 +1,149 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: hot_template\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    template_PortTuple_LB1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    oam_sec_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    nems_traffic_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_addr_from_start_true:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+  node_templates:\r
+    template_VMInt_OAM_lb_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - jsa_net1\r
+        - jsa_net1\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    jsa_net1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name: aaa\r
+  groups:\r
+    hot_template_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot_template.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - template_VMInt_OAM_lb_1\r
+      - jsa_net1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.hot_template\r
+    capabilities:\r
+      network.outpoing.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outpoing.packets\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes.rate\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets\r
+      feature_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - feature\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes\r
+      forwarder_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - forwarder\r
+      feature_jsa_net1:\r
+      - jsa_net1\r
+      - feature\r
+      end_point_jsa_net1:\r
+      - jsa_net1\r
+      - end_point\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes.rate\r
+      link_jsa_net1:\r
+      - jsa_net1\r
+      - link\r
+      attachment_jsa_net1:\r
+      - jsa_net1\r
+      - attachment\r
+      network.incoming.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes\r
+    requirements:\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+      dependency_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - dependency\r
+      dependency_jsa_net1:\r
+      - jsa_net1\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/inputfiles/base_hot_template.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/listNet/inputfiles/base_hot_template.yml
new file mode 100644 (file)
index 0000000..afe369c
--- /dev/null
@@ -0,0 +1,23 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  lb_st_interface_type_oam:
+    description: dummy
+    type: string
+
+resources:
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: hot_template.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
+            }
+
index 46e8066..7b626ed 100644 (file)
@@ -36,131 +36,11 @@ resources:
         {
           virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
         }
-      virtual_network_refs: [{ get_resource: jsa_net1 },{ get_resource: jsa_net5 }]
+      virtual_network_refs: [{ get_resource: jsa_net1 },{ get_resource: jsa_net1 }]
       port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
       security_group_refs: [{ get_param: oam_sec_group_name}]
 
   jsa_net1:
-     properties:
-       name: aaa
-       network_ipam_refs_data:
-         -
-           network_ipam_refs_data_ipam_subnets:
-             -
-               network_ipam_refs_data_ipam_subnets_addr_from_start:
-                 get_param: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-               network_ipam_refs_data_ipam_subnets_subnet:
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-     type: "OS::ContrailV2::VirtualNetwork"
-
-  template_VMInt_OAM_lb_2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-        }
-      virtual_network_refs: [ { list_join: [':', { get_attr: [ jsa_net2, fq_name ] } ] },{ list_join: [':', { get_attr: [ jsa_net5, fq_name ] } ] }]
-      port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-      security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  jsa_net2:
-     properties:
-       name: aaa
-       network_ipam_refs_data:
-         -
-           network_ipam_refs_data_ipam_subnets:
-             -
-               network_ipam_refs_data_ipam_subnets_addr_from_start:
-                 get_param: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-               network_ipam_refs_data_ipam_subnets_subnet:
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-     type: "OS::ContrailV2::VirtualNetwork"
-
-  template_VMInt_OAM_lb_3:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-        }
-      virtual_network_refs: [{ get_attr: [ jsa_net3, fq_name ] } ,{ get_attr: [ jsa_net5, fq_name ] }]
-      port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-      security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  jsa_net3:
-     properties:
-       name: aaa
-       network_ipam_refs_data:
-         -
-           network_ipam_refs_data_ipam_subnets:
-             -
-               network_ipam_refs_data_ipam_subnets_addr_from_start:
-                 get_param: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-               network_ipam_refs_data_ipam_subnets_subnet:
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-     type: "OS::ContrailV2::VirtualNetwork"
-
-  template_VMInt_OAM_lb_4:
-     type: OS::ContrailV2::VirtualMachineInterface
-     properties:
-       virtual_machine_interface_properties:
-         {
-           virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-         }
-       virtual_network_refs: [{ get_attr: [ jsa_net4, fq_name ] } ] # should not connect to contrail network
-       port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-       security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  template_VMInt_OAM_lb_5:
-     type: OS::ContrailV2::VirtualMachineInterface
-     properties:
-       virtual_machine_interface_properties:
-         {
-           virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-         }
-       virtual_network_refs: []
-       port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-       security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  template_VMInt_OAM_lb_6:
-     type: OS::ContrailV2::VirtualMachineInterface
-     properties:
-       virtual_machine_interface_properties:
-         {
-           virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-         }
-       virtual_network_refs: { get_attr: [ jsa_net3, fq_name ] }
-       port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-       security_group_refs: [{ get_param: oam_sec_group_name}]
-
-
-
-  template_VMInt_OAM_lb_7:
-     type: OS::ContrailV2::VirtualMachineInterface
-     properties:
-       virtual_machine_interface_properties:
-         {
-           virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-         }
-       port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-       security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  jsa_net4:
-      type: OS::Contrail::VirtualNetwork
-      properties:
-        name: {get_param: nems_traffic_name}
-
-  jsa_net5:
      properties:
        name: aaa
        network_ipam_refs_data:
 tosca_definitions_version: tosca_simple_yaml_1_0_0
 metadata:
-  template_name: Main
+  template_name: vmme_vlc
 imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
 topology_template:
   inputs:
     vlc1_Internal2_mac:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal2_mac
       type: string
       description: static mac address assigned to vlc1_Internal2
     internal_net_id_1:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_1
       type: string
       description: UUID of Internal2_net
     internal_net_id_0:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_0
       type: string
       description: UUID of Internal1_net
     security_group_int2_id:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int2_id
       type: string
       description: Security Group UUID for output
     security_group_int1_id:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int1_id
       type: string
       description: Security Group UUID for output
     vlc1_Internal1_mac:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal1_mac
       type: string
       description: static mac address assigned to vlc1_Internal1
     vlc_st_interface_type_int1:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int1
       type: string
       description: service_interface_type for the ServiceTemplate
     vlc_st_interface_type_int2:
       hidden: false
       immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int2
       type: string
       description: service_interface_type for the ServiceTemplate
   node_templates:
@@ -133,3 +71,49 @@ topology_template:
           Module HOT template to create vmme 2 vlc
       members:
       - template_VMInt_INT1_VLC_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.vmme_vlc
+    capabilities:
+      network.outgoing.packets.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outgoing.packets.rate
+      network.outpoing.packets_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outpoing.packets
+      network.incoming.packets_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.packets
+      feature_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - feature
+      network.incoming.packets.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.packets.rate
+      network.outgoing.bytes_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outgoing.bytes
+      network.incoming.bytes_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.bytes
+      network.outgoing.bytes.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outgoing.bytes.rate
+      forwarder_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - forwarder
+      binding_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - binding
+      network.incoming.bytes.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.bytes.rate
+    requirements:
+      dependency_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - dependency
+      link_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - link
+      binding_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/inputfiles/base_vmme_vlc.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/inputfiles/base_vmme_vlc.yml
new file mode 100644 (file)
index 0000000..79bc9b1
--- /dev/null
@@ -0,0 +1,51 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  vlc1_Internal1_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal1
+  vlc1_Internal2_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal2
+  vlc_st_interface_type_int1:
+    type: string  
+    description: service_interface_type for the ServiceTemplate
+  vlc_st_interface_type_int2:
+    type: string
+    description: service_interface_type for the ServiceTemplate
+  internal_net_id_0:
+    type: string
+    description: UUID of Internal1_net
+  internal_net_id_1:
+    type: string
+    description: UUID of Internal2_net
+  security_group_int1_id:
+    type: string
+    description: Security Group UUID for output
+  security_group_int2_id:
+    type: string
+    description: Security Group UUID for output
+
+resources:
+
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: vmme_vlc.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: vlc_st_interface_type_int1 }
+            }
+          virtual_network_refs: [{ get_param: internal_net_id_0}]
+          virtual_machine_interface_mac_addresses:
+            {
+              virtual_machine_interface_mac_addresses_mac_address: [{ get_param: vlc1_Internal1_mac }, "abc"]
+            }
+          security_group_refs: [{get_param: security_group_int1_id}]
+
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    vlc1_Internal2_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal2_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal2
-    internal_net_id_1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_1
-      type: string
-      description: UUID of Internal2_net
-    internal_net_id_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_0
-      type: string
-      description: UUID of Internal1_net
-    security_group_int2_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int2_id
-      type: string
-      description: Security Group UUID for output
-    security_group_int1_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int1_id
-      type: string
-      description: Security Group UUID for output
-    vlc1_Internal1_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal1_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal1
-    vlc_st_interface_type_int1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int1
-      type: string
-      description: service_interface_type for the ServiceTemplate
-    vlc_st_interface_type_int2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int2
-      type: string
-      description: service_interface_type for the ServiceTemplate
-  node_templates:
-    template_VMInt_INT1_VLC_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: security_group_int1_id
-        virtual_network_refs:
-        - get_input: internal_net_id_0
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: vlc_st_interface_type_int1
-        virtual_machine_interface_mac_addresses:
-        - get_input: vlc1_Internal1_mac
-        - abc
-  groups:
-    vmme_vlc_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/vmme_vlc.yml
-        description: |
-          Module HOT template to create vmme 2 vlc
-      members:
-      - template_VMInt_INT1_VLC_1
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vmme_vlc\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vlc1_Internal2_mac:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: static mac address assigned to vlc1_Internal2\r
+    internal_net_id_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UUID of Internal2_net\r
+    internal_net_id_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UUID of Internal1_net\r
+    security_group_int2_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Security Group UUID for output\r
+    security_group_int1_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Security Group UUID for output\r
+    vlc1_Internal1_mac:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: static mac address assigned to vlc1_Internal1\r
+    vlc_st_interface_type_int1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for the ServiceTemplate\r
+    vlc_st_interface_type_int2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for the ServiceTemplate\r
+  node_templates:\r
+    template_VMInt_INT1_VLC_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: security_group_int1_id\r
+        virtual_network_refs:\r
+        - get_input: internal_net_id_0\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: vlc_st_interface_type_int1\r
+        virtual_machine_interface_mac_addresses:\r
+        - get_input: vlc1_Internal1_mac\r
+        - abc\r
+  groups:\r
+    vmme_vlc_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vmme_vlc.yml\r
+        description: |\r
+          Module HOT template to create vmme 2 vlc\r
+      members:\r
+      - template_VMInt_INT1_VLC_1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.vmme_vlc\r
+    capabilities:\r
+      network.outgoing.packets.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.packets.rate\r
+      network.outpoing.packets_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outpoing.packets\r
+      network.incoming.packets_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.packets\r
+      feature_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - feature\r
+      network.incoming.packets.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.packets.rate\r
+      network.outgoing.bytes_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.bytes\r
+      network.incoming.bytes_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.bytes.rate\r
+      forwarder_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - forwarder\r
+      binding_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - binding\r
+      network.incoming.bytes.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.bytes.rate\r
+    requirements:\r
+      dependency_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - dependency\r
+      link_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - link\r
+      binding_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/inputfiles/base_vmme_vlc.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/inputfiles/base_vmme_vlc.yml
new file mode 100644 (file)
index 0000000..79bc9b1
--- /dev/null
@@ -0,0 +1,51 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  vlc1_Internal1_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal1
+  vlc1_Internal2_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal2
+  vlc_st_interface_type_int1:
+    type: string  
+    description: service_interface_type for the ServiceTemplate
+  vlc_st_interface_type_int2:
+    type: string
+    description: service_interface_type for the ServiceTemplate
+  internal_net_id_0:
+    type: string
+    description: UUID of Internal1_net
+  internal_net_id_1:
+    type: string
+    description: UUID of Internal2_net
+  security_group_int1_id:
+    type: string
+    description: Security Group UUID for output
+  security_group_int2_id:
+    type: string
+    description: Security Group UUID for output
+
+resources:
+
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: vmme_vlc.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: vlc_st_interface_type_int1 }
+            }
+          virtual_network_refs: [{ get_param: internal_net_id_0}]
+          virtual_machine_interface_mac_addresses:
+            {
+              virtual_machine_interface_mac_addresses_mac_address: [{ get_param: vlc1_Internal1_mac }, "abc"]
+            }
+          security_group_refs: [{get_param: security_group_int1_id}]
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/expectedoutputfiles/MainServiceTemplate.yaml
deleted file mode 100644 (file)
index 977f6a6..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    vlc1_Internal2_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal2_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal2
-    internal_net_id_1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_1
-      type: string
-      description: UUID of Internal2_net
-    internal_net_id_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_0
-      type: string
-      description: UUID of Internal1_net
-    security_group_int2_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int2_id
-      type: string
-      description: Security Group UUID for output
-    security_group_int1_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int1_id
-      type: string
-      description: Security Group UUID for output
-    vlc1_Internal1_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal1_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal1
-    vlc_st_interface_type_int1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int1
-      type: string
-      description: service_interface_type for the ServiceTemplate
-    vlc_st_interface_type_int2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int2
-      type: string
-      description: service_interface_type for the ServiceTemplate
-  node_templates:
-    template_VMInt_INT2_VLC_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: security_group_int2_id
-        virtual_network_refs:
-        - get_input: internal_net_id_1
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: vlc_st_interface_type_int2
-        virtual_machine_interface_mac_addresses:
-        - get_input: vlc1_Internal2_mac
-    template_VMInt_INT1_VLC_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: security_group_int1_id
-        virtual_network_refs:
-        - get_input: internal_net_id_0
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: vlc_st_interface_type_int1
-        virtual_machine_interface_mac_addresses:
-        - get_input: vlc1_Internal1_mac
-  groups:
-    vmme_vlc_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/vmme_vlc.yml
-        description: |
-          Module HOT template to create vmme 2 vlc
-      members:
-      - template_VMInt_INT2_VLC_1
-      - template_VMInt_INT1_VLC_1
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/expectedoutputfiles/vmme_vlcServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/expectedoutputfiles/vmme_vlcServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..80763b5
--- /dev/null
@@ -0,0 +1,173 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: vmme_vlc
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    vlc1_Internal2_mac:
+      hidden: false
+      immutable: false
+      type: string
+      description: static mac address assigned to vlc1_Internal2
+    internal_net_id_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of Internal2_net
+    internal_net_id_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of Internal1_net
+    security_group_int2_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Security Group UUID for output
+    security_group_int1_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Security Group UUID for output
+    vlc1_Internal1_mac:
+      hidden: false
+      immutable: false
+      type: string
+      description: static mac address assigned to vlc1_Internal1
+    vlc_st_interface_type_int1:
+      hidden: false
+      immutable: false
+      type: string
+      description: service_interface_type for the ServiceTemplate
+    vlc_st_interface_type_int2:
+      hidden: false
+      immutable: false
+      type: string
+      description: service_interface_type for the ServiceTemplate
+  node_templates:
+    template_VMInt_INT2_VLC_1:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        security_group_refs:
+        - get_input: security_group_int2_id
+        virtual_network_refs:
+        - get_input: internal_net_id_1
+        virtual_machine_interface_properties:
+          service_interface_type:
+            get_input: vlc_st_interface_type_int2
+        virtual_machine_interface_mac_addresses:
+        - get_input: vlc1_Internal2_mac
+    template_VMInt_INT1_VLC_1:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        security_group_refs:
+        - get_input: security_group_int1_id
+        virtual_network_refs:
+        - get_input: internal_net_id_0
+        virtual_machine_interface_properties:
+          service_interface_type:
+            get_input: vlc_st_interface_type_int1
+        virtual_machine_interface_mac_addresses:
+        - get_input: vlc1_Internal1_mac
+  groups:
+    vmme_vlc_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_vlc.yml
+        description: |
+          Module HOT template to create vmme 2 vlc
+      members:
+      - template_VMInt_INT2_VLC_1
+      - template_VMInt_INT1_VLC_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.vmme_vlc
+    capabilities:
+      network.incoming.bytes.rate_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.incoming.bytes.rate
+      network.incoming.packets.rate_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.incoming.packets.rate
+      network.outpoing.packets_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outpoing.packets
+      network.incoming.packets.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.packets.rate
+      network.outgoing.bytes_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outgoing.bytes
+      network.incoming.bytes_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.bytes
+      network.outgoing.bytes.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outgoing.bytes.rate
+      network.outpoing.packets_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.outpoing.packets
+      network.outgoing.bytes_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.outgoing.bytes
+      forwarder_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - forwarder
+      binding_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - binding
+      network.incoming.bytes.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.bytes.rate
+      network.outgoing.bytes.rate_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.outgoing.bytes.rate
+      network.incoming.bytes_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.incoming.bytes
+      binding_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - binding
+      network.outgoing.packets.rate_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.outgoing.packets.rate
+      network.incoming.packets_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - network.incoming.packets
+      forwarder_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - forwarder
+      feature_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - feature
+      network.incoming.packets_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.incoming.packets
+      network.outgoing.packets.rate_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - network.outgoing.packets.rate
+      feature_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - feature
+    requirements:
+      dependency_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - dependency
+      binding_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - binding
+      link_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - link
+      dependency_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - dependency
+      link_template_VMInt_INT2_VLC_1:
+      - template_VMInt_INT2_VLC_1
+      - link
+      binding_template_VMInt_INT1_VLC_1:
+      - template_VMInt_INT1_VLC_1
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/inputfiles/base_vmme_vlc.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/inputfiles/base_vmme_vlc.yml
new file mode 100644 (file)
index 0000000..79bc9b1
--- /dev/null
@@ -0,0 +1,51 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  vlc1_Internal1_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal1
+  vlc1_Internal2_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal2
+  vlc_st_interface_type_int1:
+    type: string  
+    description: service_interface_type for the ServiceTemplate
+  vlc_st_interface_type_int2:
+    type: string
+    description: service_interface_type for the ServiceTemplate
+  internal_net_id_0:
+    type: string
+    description: UUID of Internal1_net
+  internal_net_id_1:
+    type: string
+    description: UUID of Internal2_net
+  security_group_int1_id:
+    type: string
+    description: Security Group UUID for output
+  security_group_int2_id:
+    type: string
+    description: Security Group UUID for output
+
+resources:
+
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: vmme_vlc.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: vlc_st_interface_type_int1 }
+            }
+          virtual_network_refs: [{ get_param: internal_net_id_0}]
+          virtual_machine_interface_mac_addresses:
+            {
+              virtual_machine_interface_mac_addresses_mac_address: [{ get_param: vlc1_Internal1_mac }, "abc"]
+            }
+          security_group_refs: [{get_param: security_group_int1_id}]
+
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    vlc1_Internal2_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal2_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal2
-    internal_net_id_1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_1
-      type: string
-      description: UUID of Internal2_net
-    internal_net_id_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_0
-      type: string
-      description: UUID of Internal1_net
-    security_group_int2_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int2_id
-      type: string
-      description: Security Group UUID for output
-    security_group_int1_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int1_id
-      type: string
-      description: Security Group UUID for output
-    vlc1_Internal1_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal1_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal1
-    vlc_st_interface_type_int1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int1
-      type: string
-      description: service_interface_type for the ServiceTemplate
-    vlc_st_interface_type_int2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int2
-      type: string
-      description: service_interface_type for the ServiceTemplate
-  node_templates:
-    template_VMInt_INT1_VLC_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: security_group_int1_id
-        virtual_network_refs:
-        - get_input: internal_net_id_0
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: vlc_st_interface_type_int1
-        virtual_machine_interface_mac_addresses:
-        - get_input: vlc1_Internal1_mac
-        - get_input: vlc1_Internal2_mac
-        - abc
-  groups:
-    vmme_vlc_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/vmme_vlc.yml
-        description: |
-          Module HOT template to create vmme 2 vlc
-      members:
-      - template_VMInt_INT1_VLC_1
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vmme_vlc\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vlc1_Internal2_mac:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: static mac address assigned to vlc1_Internal2\r
+    internal_net_id_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UUID of Internal2_net\r
+    internal_net_id_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UUID of Internal1_net\r
+    security_group_int2_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Security Group UUID for output\r
+    security_group_int1_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Security Group UUID for output\r
+    vlc1_Internal1_mac:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: static mac address assigned to vlc1_Internal1\r
+    vlc_st_interface_type_int1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for the ServiceTemplate\r
+    vlc_st_interface_type_int2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for the ServiceTemplate\r
+  node_templates:\r
+    template_VMInt_INT1_VLC_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: security_group_int1_id\r
+        virtual_network_refs:\r
+        - get_input: internal_net_id_0\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: vlc_st_interface_type_int1\r
+        virtual_machine_interface_mac_addresses:\r
+        - get_input: vlc1_Internal1_mac\r
+        - get_input: vlc1_Internal2_mac\r
+        - abc\r
+  groups:\r
+    vmme_vlc_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vmme_vlc.yml\r
+        description: |\r
+          Module HOT template to create vmme 2 vlc\r
+      members:\r
+      - template_VMInt_INT1_VLC_1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.vmme_vlc\r
+    capabilities:\r
+      network.outgoing.packets.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.packets.rate\r
+      network.outpoing.packets_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outpoing.packets\r
+      network.incoming.packets_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.packets\r
+      feature_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - feature\r
+      network.incoming.packets.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.packets.rate\r
+      network.outgoing.bytes_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.bytes\r
+      network.incoming.bytes_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.bytes.rate\r
+      forwarder_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - forwarder\r
+      binding_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - binding\r
+      network.incoming.bytes.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.bytes.rate\r
+    requirements:\r
+      dependency_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - dependency\r
+      link_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - link\r
+      binding_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/inputfiles/base_vmme_vlc.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/inputfiles/base_vmme_vlc.yml
new file mode 100644 (file)
index 0000000..79bc9b1
--- /dev/null
@@ -0,0 +1,51 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  vlc1_Internal1_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal1
+  vlc1_Internal2_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal2
+  vlc_st_interface_type_int1:
+    type: string  
+    description: service_interface_type for the ServiceTemplate
+  vlc_st_interface_type_int2:
+    type: string
+    description: service_interface_type for the ServiceTemplate
+  internal_net_id_0:
+    type: string
+    description: UUID of Internal1_net
+  internal_net_id_1:
+    type: string
+    description: UUID of Internal2_net
+  security_group_int1_id:
+    type: string
+    description: Security Group UUID for output
+  security_group_int2_id:
+    type: string
+    description: Security Group UUID for output
+
+resources:
+
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: vmme_vlc.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: vlc_st_interface_type_int1 }
+            }
+          virtual_network_refs: [{ get_param: internal_net_id_0}]
+          virtual_machine_interface_mac_addresses:
+            {
+              virtual_machine_interface_mac_addresses_mac_address: [{ get_param: vlc1_Internal1_mac }, "abc"]
+            }
+          security_group_refs: [{get_param: security_group_int1_id}]
+
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    vlc1_Internal2_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal2_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal2
-    internal_net_id_1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_1
-      type: string
-      description: UUID of Internal2_net
-    internal_net_id_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: internal_net_id_0
-      type: string
-      description: UUID of Internal1_net
-    security_group_int2_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int2_id
-      type: string
-      description: Security Group UUID for output
-    security_group_int1_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: security_group_int1_id
-      type: string
-      description: Security Group UUID for output
-    vlc1_Internal1_mac:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc1_Internal1_mac
-      type: string
-      description: static mac address assigned to vlc1_Internal1
-    vlc_st_interface_type_int1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int1
-      type: string
-      description: service_interface_type for the ServiceTemplate
-    vlc_st_interface_type_int2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - vmme_vlc
-            source_type: HEAT
-            param_name: vlc_st_interface_type_int2
-      type: string
-      description: service_interface_type for the ServiceTemplate
-  node_templates:
-    template_VMInt_INT1_VLC_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: security_group_int1_id
-        virtual_network_refs:
-        - get_input: internal_net_id_0
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: vlc_st_interface_type_int1
-  groups:
-    vmme_vlc_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/vmme_vlc.yml
-        description: |
-          Module HOT template to create vmme 2 vlc
-      members:
-      - template_VMInt_INT1_VLC_1
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vmme_vlc\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vlc1_Internal2_mac:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: static mac address assigned to vlc1_Internal2\r
+    internal_net_id_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UUID of Internal2_net\r
+    internal_net_id_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UUID of Internal1_net\r
+    security_group_int2_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Security Group UUID for output\r
+    security_group_int1_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Security Group UUID for output\r
+    vlc1_Internal1_mac:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: static mac address assigned to vlc1_Internal1\r
+    vlc_st_interface_type_int1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for the ServiceTemplate\r
+    vlc_st_interface_type_int2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for the ServiceTemplate\r
+  node_templates:\r
+    template_VMInt_INT1_VLC_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: security_group_int1_id\r
+        virtual_network_refs:\r
+        - get_input: internal_net_id_0\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: vlc_st_interface_type_int1\r
+  groups:\r
+    vmme_vlc_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vmme_vlc.yml\r
+        description: |\r
+          Module HOT template to create vmme 2 vlc\r
+      members:\r
+      - template_VMInt_INT1_VLC_1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.vmme_vlc\r
+    capabilities:\r
+      network.outgoing.packets.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.packets.rate\r
+      network.outpoing.packets_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outpoing.packets\r
+      network.incoming.packets_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.packets\r
+      feature_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - feature\r
+      network.incoming.packets.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.packets.rate\r
+      network.outgoing.bytes_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.bytes\r
+      network.incoming.bytes_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.outgoing.bytes.rate\r
+      forwarder_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - forwarder\r
+      binding_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - binding\r
+      network.incoming.bytes.rate_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - network.incoming.bytes.rate\r
+    requirements:\r
+      dependency_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - dependency\r
+      link_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - link\r
+      binding_template_VMInt_INT1_VLC_1:\r
+      - template_VMInt_INT1_VLC_1\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/inputfiles/base_vmme_vlc.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/inputfiles/base_vmme_vlc.yml
new file mode 100644 (file)
index 0000000..79bc9b1
--- /dev/null
@@ -0,0 +1,51 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  vlc1_Internal1_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal1
+  vlc1_Internal2_mac:
+    type: string
+    description: static mac address assigned to vlc1_Internal2
+  vlc_st_interface_type_int1:
+    type: string  
+    description: service_interface_type for the ServiceTemplate
+  vlc_st_interface_type_int2:
+    type: string
+    description: service_interface_type for the ServiceTemplate
+  internal_net_id_0:
+    type: string
+    description: UUID of Internal1_net
+  internal_net_id_1:
+    type: string
+    description: UUID of Internal2_net
+  security_group_int1_id:
+    type: string
+    description: Security Group UUID for output
+  security_group_int2_id:
+    type: string
+    description: Security Group UUID for output
+
+resources:
+
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: vmme_vlc.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: vlc_st_interface_type_int1 }
+            }
+          virtual_network_refs: [{ get_param: internal_net_id_0}]
+          virtual_machine_interface_mac_addresses:
+            {
+              virtual_machine_interface_mac_addresses_mac_address: [{ get_param: vlc1_Internal1_mac }, "abc"]
+            }
+          security_group_refs: [{get_param: security_group_int1_id}]
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles/MainServiceTemplate.yaml
deleted file mode 100644 (file)
index 5572249..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    interface_param:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: interface_param
-      type: string
-      description: dummy
-    template_PortTuple_LB1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: template_PortTuple_LB1
-      type: string
-      description: dummy
-    lb_st_interface_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: lb_st_interface_type_oam
-      type: string
-      description: dummy
-    oam_sec_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: oam_sec_group_name
-      type: string
-      description: dummy
-    nems_traffic_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: nems_traffic_name
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_addr_from_start_true:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-      type: string
-      description: dummy
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-      type: string
-      description: dummy
-  node_templates:
-    jsa_net3:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    jsa_net2:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    jsa_net4:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
-      properties:
-        network_name:
-          get_input: nems_traffic_name
-    template_VMInt_OAM_lb_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - jsa_net1
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net2
-            - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net2
-          relationship: tosca.relationships.network.LinksTo
-    jsa_net1:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    template_VMInt_OAM_lb_3:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net3
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net3
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_4:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net4
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-  groups:
-    hot_template_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot_template.yml
-        description: cmaui server template for vMMSC
-      members:
-      - jsa_net3
-      - jsa_net2
-      - jsa_net4
-      - template_VMInt_OAM_lb_1
-      - template_VMInt_OAM_lb_2
-      - jsa_net1
-      - template_VMInt_OAM_lb_3
-      - template_VMInt_OAM_lb_4
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles/hot_templateServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles/hot_templateServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..bbb323d
--- /dev/null
@@ -0,0 +1,153 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: hot_template\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    interface_param:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    template_PortTuple_LB1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    oam_sec_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    nems_traffic_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_addr_from_start_true:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+  node_templates:\r
+    template_VMInt_OAM_lb_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - jsa_net1\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    jsa_net1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name: aaa\r
+  groups:\r
+    hot_template_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot_template.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - template_VMInt_OAM_lb_1\r
+      - jsa_net1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.hot_template\r
+    capabilities:\r
+      network.outpoing.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outpoing.packets\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes.rate\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets\r
+      feature_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - feature\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes\r
+      forwarder_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - forwarder\r
+      feature_jsa_net1:\r
+      - jsa_net1\r
+      - feature\r
+      end_point_jsa_net1:\r
+      - jsa_net1\r
+      - end_point\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes.rate\r
+      link_jsa_net1:\r
+      - jsa_net1\r
+      - link\r
+      attachment_jsa_net1:\r
+      - jsa_net1\r
+      - attachment\r
+      network.incoming.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes\r
+    requirements:\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+      dependency_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - dependency\r
+      dependency_jsa_net1:\r
+      - jsa_net1\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/inputfiles/base_hot_template.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2VMinterface/oneNet/inputfiles/base_hot_template.yml
new file mode 100644 (file)
index 0000000..afe369c
--- /dev/null
@@ -0,0 +1,23 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  lb_st_interface_type_oam:
+    description: dummy
+    type: string
+
+resources:
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: hot_template.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
+            }
+
index 7863cb5..adba9e8 100644 (file)
-heat_template_version: 2013-05-23
-
-description: cmaui server template for vMMSC
-
-parameters:
-  network_ipam_refs_data_ipam_subnets_addr_from_start_true:
-    description: dummy
-    type: string
-  network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:
-    description: dummy
-    type: string
-  network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:
-    description: dummy
-    type: string
-  lb_st_interface_type_oam:
-    description: dummy
-    type: string
-  template_PortTuple_LB1:
-    description: dummy
-    type: string
-  oam_sec_group_name:
-    description: dummy
-    type: string
-  jsa_net_name:
-    description: dummy
-    type: string
-  nems_traffic_name:
-    description: dummy
-    type: string
-  interface_param:
-    description: dummy
-    type: string
-
-resources:
-  template_VMInt_OAM_lb_1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-        }
-      virtual_network_refs: [{ get_resource: jsa_net1 }]
-      port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-      security_group_refs: [{ get_param: oam_sec_group_name}]
-      virtual_machine_interface_refs: [{ get_param: interface_param }]
-
-  jsa_net1:
-     properties:
-       name: aaa
-       network_ipam_refs_data:
-         -
-           network_ipam_refs_data_ipam_subnets:
-             -
-               network_ipam_refs_data_ipam_subnets_addr_from_start:
-                 get_param: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-               network_ipam_refs_data_ipam_subnets_subnet:
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-     type: "OS::ContrailV2::VirtualNetwork"
-
-  template_VMInt_OAM_lb_2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-        }
-      virtual_network_refs: [ { list_join: [':', { get_attr: [ jsa_net2, fq_name ] } ] }]
-      port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-      security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  jsa_net2:
-     properties:
-       name: aaa
-       network_ipam_refs_data:
-         -
-           network_ipam_refs_data_ipam_subnets:
-             -
-               network_ipam_refs_data_ipam_subnets_addr_from_start:
-                 get_param: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-               network_ipam_refs_data_ipam_subnets_subnet:
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-     type: "OS::ContrailV2::VirtualNetwork"
-
-  template_VMInt_OAM_lb_3:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-        }
-      virtual_network_refs: [{ get_attr: [ jsa_net3, fq_name ] } ]
-      port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-      security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  jsa_net3:
-     properties:
-       name: aaa
-       network_ipam_refs_data:
-         -
-           network_ipam_refs_data_ipam_subnets:
-             -
-               network_ipam_refs_data_ipam_subnets_addr_from_start:
-                 get_param: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-               network_ipam_refs_data_ipam_subnets_subnet:
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-     type: "OS::ContrailV2::VirtualNetwork"
-
-  template_VMInt_OAM_lb_4:
-     type: OS::ContrailV2::VirtualMachineInterface
-     properties:
-       virtual_machine_interface_properties:
-         {
-           virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-         }
-       virtual_network_refs: [{ get_attr: [ jsa_net4, fq_name ] } ] # should not connect to contrail network
-       port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-       security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  jsa_net4:
-      type: OS::Contrail::VirtualNetwork
-      properties:
-        name: {get_param: nems_traffic_name}
-
+heat_template_version: 2013-05-23\r
+\r
+description: cmaui server template for vMMSC\r
+\r
+parameters:\r
+  network_ipam_refs_data_ipam_subnets_addr_from_start_true:\r
+    description: dummy\r
+    type: string\r
+  network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:\r
+    description: dummy\r
+    type: string\r
+  network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:\r
+    description: dummy\r
+    type: string\r
+  lb_st_interface_type_oam:\r
+    description: dummy\r
+    type: string\r
+  template_PortTuple_LB1:\r
+    description: dummy\r
+    type: string\r
+  oam_sec_group_name:\r
+    description: dummy\r
+    type: string\r
+  jsa_net_name:\r
+    description: dummy\r
+    type: string\r
+  nems_traffic_name:\r
+    description: dummy\r
+    type: string\r
+  interface_param:\r
+    description: dummy\r
+    type: string\r
+\r
+resources:\r
+  template_VMInt_OAM_lb_1:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      virtual_machine_interface_properties:\r
+        {\r
+          virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },\r
+        }\r
+      virtual_network_refs: [{ get_resource: jsa_net1 }]\r
+      port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]\r
+      security_group_refs: [{ get_param: oam_sec_group_name}]\r
+      virtual_machine_interface_refs: [{ get_param: interface_param }]\r
+\r
+  jsa_net1:\r
+     properties:\r
+       name: aaa\r
+       network_ipam_refs_data:\r
+         -\r
+           network_ipam_refs_data_ipam_subnets:\r
+             -\r
+               network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+                 get_param: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+               network_ipam_refs_data_ipam_subnets_subnet:\r
+                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+                 network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                   get_param: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+     type: "OS::ContrailV2::VirtualNetwork"\r
\ No newline at end of file
index 84c2ef4..7e2521c 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    template_PortTuple_LB1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: template_PortTuple_LB1
-      type: string
-      description: dummy
-    lb_st_interface_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: lb_st_interface_type_oam
-      type: string
-      description: dummy
-    oam_sec_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: oam_sec_group_name
-      type: string
-      description: dummy
-    virtual_ip_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: virtual_ip_address
-      type: string
-    nems_traffic_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: nems_traffic_name
-      type: string
-      description: dummy
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: dummy
-    vlan_ids:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: vlan_ids
-      type: string
-    virtual_ipv6_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: virtual_ipv6_address
-      type: string
-    lb_st_vlan_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: lb_st_vlan_type_oam
-      type: string
-      description: dummy
-    mac_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: mac_address
-      type: string
-    network_ipam_refs_data_ipam_subnets_addr_from_start_true:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-      type: string
-      description: dummy
-    subinterface_name_prefix:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: subinterface_name_prefix
-      type: string
-    subinterface_instance_index:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: subinterface_instance_index
-      type: float
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-      type: string
-      description: dummy
-  node_templates:
-    jsa_net3:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    jsa_net2:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    jsa_net5:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    jsa_net4:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
-      properties:
-        network_name:
-          get_input: nems_traffic_name
-    jsa_net1:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    template_VMInt_OAM_lb_5:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs: [
-          ]
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    template_VMInt_OAM_lb_6:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-          get_attribute:
-          - jsa_net3
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    template_VMInt_OAM_lb_7:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    template_VMInt_OAM_lb_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - jsa_net1
-        - jsa_net5
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net2
-            - fq_name
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net5
-            - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net2
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_3:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net3
-          - fq_name
-        - get_attribute:
-          - jsa_net5
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net3
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_4:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net4
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    template_Vlan_3:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - get_attribute:
-          - template_VMInt_OAM_lb_3
-          - fq_name
-        - get_attribute:
-          - template_VMInt_OAM_lb_1
-          - fq_name
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net3
-          - fq_name
-        - get_attribute:
-          - jsa_net5
-          - fq_name
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net3
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_3
-          relationship: tosca.relationships.network.BindsTo
-    template_Vlan_2:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - template_VMInt_OAM_lb_1
-            - fq_name
-        - list_join:
-          - ':'
-          - get_attribute:
-            - template_VMInt_OAM_lb_2
-            - fq_name
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net2
-            - fq_name
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net5
-            - fq_name
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net2
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-    template_Vlan_1:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - template_VMInt_OAM_lb_1
-        - template_VMInt_OAM_lb_2
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - jsa_net1
-        - jsa_net5
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-  groups:
-    hot_template_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot_template.yml
-        description: cmaui server template for vMMSC
-      members:
-      - jsa_net3
-      - jsa_net2
-      - jsa_net5
-      - jsa_net4
-      - jsa_net1
-      - template_VMInt_OAM_lb_5
-      - template_VMInt_OAM_lb_6
-      - template_VMInt_OAM_lb_7
-      - template_VMInt_OAM_lb_1
-      - template_VMInt_OAM_lb_2
-      - template_VMInt_OAM_lb_3
-      - template_VMInt_OAM_lb_4
-      - template_Vlan_3
-      - template_Vlan_2
-      - template_Vlan_1
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_hot_template\r
+            source_type: HEAT\r
+            param_name: lb_st_interface_type_oam\r
+      type: string\r
+      description: dummy\r
+  node_templates:\r
+    template_VMInt_INT1_VLC:\r
+      type: org.openecomp.resource.abstract.nodes.heat.hot_template\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: hot_templateServiceTemplate.yaml\r
+          count: 3\r
+          mandatory: true\r
+        virtual_machine_interface_properties:\r
+          virtual_machine_interface_properties_service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+  groups:\r
+    base_hot_template_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/base_hot_template.yml\r
+        description: |\r
+          Module HOT template to create vmme 2 vlc\r
+      members:\r
+      - template_VMInt_INT1_VLC\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/expectedoutputfiles/hot_templateServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/expectedoutputfiles/hot_templateServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4ee2b20
--- /dev/null
@@ -0,0 +1,636 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: hot_template\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    template_PortTuple_LB1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    oam_sec_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    virtual_ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    nems_traffic_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    virtual_ipv6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    lb_st_vlan_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    network_ipam_refs_data_ipam_subnets_addr_from_start_true:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    subinterface_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    subinterface_instance_index:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+  node_templates:\r
+    jsa_net3:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name: aaa\r
+    template_VMInt_OAM_lb_5:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs: [\r
+          ]\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+    jsa_net2:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name: aaa\r
+    template_VMInt_OAM_lb_6:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+          get_attribute:\r
+          - jsa_net3\r
+          - fq_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+    template_VMInt_OAM_lb_7:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+    jsa_net5:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name: aaa\r
+    jsa_net4:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          get_input: nems_traffic_name\r
+    template_VMInt_OAM_lb_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - jsa_net1\r
+        - jsa_net5\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    template_VMInt_OAM_lb_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - list_join:\r
+          - ':'\r
+          - get_attribute:\r
+            - jsa_net2\r
+            - fq_name\r
+        - list_join:\r
+          - ':'\r
+          - get_attribute:\r
+            - jsa_net5\r
+            - fq_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+    jsa_net1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name: aaa\r
+    template_VMInt_OAM_lb_3:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - get_attribute:\r
+          - jsa_net3\r
+          - fq_name\r
+        - get_attribute:\r
+          - jsa_net5\r
+          - fq_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net3\r
+          relationship: tosca.relationships.network.LinksTo\r
+    template_VMInt_OAM_lb_4:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - get_attribute:\r
+          - jsa_net4\r
+          - fq_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+  groups:\r
+    hot_template_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot_template.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - jsa_net3\r
+      - template_VMInt_OAM_lb_5\r
+      - jsa_net2\r
+      - template_VMInt_OAM_lb_6\r
+      - template_VMInt_OAM_lb_7\r
+      - jsa_net5\r
+      - jsa_net4\r
+      - template_VMInt_OAM_lb_1\r
+      - template_VMInt_OAM_lb_2\r
+      - jsa_net1\r
+      - template_VMInt_OAM_lb_3\r
+      - template_VMInt_OAM_lb_4\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.hot_template\r
+    capabilities:\r
+      feature_jsa_net5:\r
+      - jsa_net5\r
+      - feature\r
+      binding_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - binding\r
+      feature_jsa_net1:\r
+      - jsa_net1\r
+      - feature\r
+      binding_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - binding\r
+      feature_jsa_net2:\r
+      - jsa_net2\r
+      - feature\r
+      feature_jsa_net3:\r
+      - jsa_net3\r
+      - feature\r
+      binding_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - binding\r
+      feature_jsa_net4:\r
+      - jsa_net4\r
+      - feature\r
+      binding_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - binding\r
+      network.incoming.bytes_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.bytes\r
+      binding_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - binding\r
+      network.incoming.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.incoming.bytes\r
+      attachment_jsa_net3:\r
+      - jsa_net3\r
+      - attachment\r
+      attachment_jsa_net2:\r
+      - jsa_net2\r
+      - attachment\r
+      attachment_jsa_net5:\r
+      - jsa_net5\r
+      - attachment\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outgoing.packets.rate\r
+      attachment_jsa_net4:\r
+      - jsa_net4\r
+      - attachment\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.packets.rate\r
+      attachment_jsa_net1:\r
+      - jsa_net1\r
+      - attachment\r
+      network.outpoing.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outpoing.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.outgoing.bytes\r
+      network.incoming.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.outgoing.bytes\r
+      network.incoming.packets_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outgoing.bytes\r
+      network.incoming.packets_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outgoing.bytes\r
+      network.incoming.packets_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outgoing.bytes\r
+      network.outpoing.packets_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.outpoing.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.bytes.rate\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.incoming.packets\r
+      network.incoming.packets_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.incoming.packets\r
+      network.incoming.packets_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.incoming.packets\r
+      forwarder_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - forwarder\r
+      forwarder_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - forwarder\r
+      forwarder_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - forwarder\r
+      link_jsa_net5:\r
+      - jsa_net5\r
+      - link\r
+      forwarder_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - forwarder\r
+      link_jsa_net2:\r
+      - jsa_net2\r
+      - link\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outgoing.bytes.rate\r
+      link_jsa_net1:\r
+      - jsa_net1\r
+      - link\r
+      forwarder_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - forwarder\r
+      link_jsa_net4:\r
+      - jsa_net4\r
+      - link\r
+      forwarder_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - forwarder\r
+      link_jsa_net3:\r
+      - jsa_net3\r
+      - link\r
+      forwarder_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - forwarder\r
+      end_point_jsa_net5:\r
+      - jsa_net5\r
+      - end_point\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.packets.rate\r
+      end_point_jsa_net3:\r
+      - jsa_net3\r
+      - end_point\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.packets.rate\r
+      end_point_jsa_net4:\r
+      - jsa_net4\r
+      - end_point\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.incoming.packets.rate\r
+      feature_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - feature\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.incoming.packets.rate\r
+      feature_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - feature\r
+      feature_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - feature\r
+      feature_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - feature\r
+      feature_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - feature\r
+      feature_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - feature\r
+      feature_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - feature\r
+      end_point_jsa_net1:\r
+      - jsa_net1\r
+      - end_point\r
+      end_point_jsa_net2:\r
+      - jsa_net2\r
+      - end_point\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - network.outgoing.packets.rate\r
+      binding_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - binding\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+    requirements:\r
+      dependency_jsa_net3:\r
+      - jsa_net3\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - dependency\r
+      binding_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - binding\r
+      dependency_jsa_net2:\r
+      - jsa_net2\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - dependency\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+      dependency_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - dependency\r
+      dependency_jsa_net5:\r
+      - jsa_net5\r
+      - dependency\r
+      dependency_jsa_net4:\r
+      - jsa_net4\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - dependency\r
+      link_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - link\r
+      link_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - link\r
+      binding_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - binding\r
+      link_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - link\r
+      binding_template_VMInt_OAM_lb_5:\r
+      - template_VMInt_OAM_lb_5\r
+      - binding\r
+      link_template_VMInt_OAM_lb_6:\r
+      - template_VMInt_OAM_lb_6\r
+      - link\r
+      dependency_jsa_net1:\r
+      - jsa_net1\r
+      - dependency\r
+      binding_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - binding\r
+      binding_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - binding\r
+      binding_template_VMInt_OAM_lb_7:\r
+      - template_VMInt_OAM_lb_7\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/inputfiles/base_hot_template.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/listInterface/inputfiles/base_hot_template.yml
new file mode 100644 (file)
index 0000000..afe369c
--- /dev/null
@@ -0,0 +1,23 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  lb_st_interface_type_oam:
+    description: dummy
+    type: string
+
+resources:
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: hot_template.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
+            }
+
index ecff1aa..7e2521c 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-topology_template:
-  inputs:
-    template_PortTuple_LB1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: template_PortTuple_LB1
-      type: string
-      description: dummy
-    lb_st_interface_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: lb_st_interface_type_oam
-      type: string
-      description: dummy
-    oam_sec_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: oam_sec_group_name
-      type: string
-      description: dummy
-    virtual_ip_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: virtual_ip_address
-      type: string
-    nems_traffic_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: nems_traffic_name
-      type: string
-      description: dummy
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: security_group_name
-      description: not impotrtant
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: dummy
-    vlan_ids:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: vlan_ids
-      type: string
-    virtual_ipv6_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: virtual_ipv6_address
-      type: string
-    lb_st_vlan_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: lb_st_vlan_type_oam
-      type: string
-      description: dummy
-    mac_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: mac_address
-      type: string
-    network_ipam_refs_data_ipam_subnets_addr_from_start_true:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-      type: string
-      description: dummy
-    subinterface_name_prefix:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: subinterface_name_prefix
-      type: string
-    subinterface_instance_index:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: subinterface_instance_index
-      type: float
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: cmaui_oam_ips
-      type: string
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-      type: string
-      description: dummy
-    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot_template
-            source_type: HEAT
-            param_name: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-      type: string
-      description: dummy
-  node_templates:
-    jsa_net3:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name: aaa
-    jsa_net2:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name:
-          get_attribute:
-          - template_VMInt_OAM_lb_2
-          - virtual_machine_interface_properties
-          - virtual_machine_interface_properties_service_interface_type
-    jsa_net4:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
-      properties:
-        network_name:
-          get_input: nems_traffic_name
-    template_Vlan_9:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - jsa_net1
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - jsa_net1
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-    jsa_net1:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_ipam_refs_data:
-        - network_ipam_refs_data_ipam_subnets:
-          - network_ipam_refs_data_ipam_subnets_subnet:
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2
-              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:
-                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2
-            network_ipam_refs_data_ipam_subnets_addr_from_start:
-              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true
-        network_name:
-          get_attribute:
-          - template_Vlan_1
-          - virtual_machine_interface_allowed_address_pairs
-          - allowed_address_pair
-          - 1
-          - ip
-          - ip_prefix
-    template_Vlan_8:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - template_Vlan_1
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - jsa_net1
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-    template_Vlan_7:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-    cmaui_port_1:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        replacement_policy: AUTO
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-        - get_input: security_group_name
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        network: jsa_net1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          get_attribute:
-          - template_Vlan_1
-          - virtual_machine_interface_properties
-          - sub_interface_vlan_tag
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - jsa_net1
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net2
-            - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net2
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_3:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net3
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net3
-          relationship: tosca.relationships.network.LinksTo
-    template_VMInt_OAM_lb_4:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net4
-          - fq_name
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-    template_Vlan_6:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs: [
-          ]
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs: [
-          ]
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-    template_Vlan_5:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs: template_VMInt_OAM_lb_1
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs: jsa_net1
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-    template_Vlan_4:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - get_attribute:
-          - template_VMInt_OAM_lb_3
-          - fq_name
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net4
-          - fq_name
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_3
-          relationship: tosca.relationships.network.BindsTo
-    template_Vlan_3:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - get_attribute:
-          - template_VMInt_OAM_lb_3
-          - fq_name
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - get_attribute:
-          - jsa_net3
-          - fq_name
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net3
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_3
-          relationship: tosca.relationships.network.BindsTo
-    template_Vlan_2:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - template_VMInt_OAM_lb_2
-            - fq_name
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - list_join:
-          - ':'
-          - get_attribute:
-            - jsa_net2
-            - fq_name
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net2
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_2
-          relationship: tosca.relationships.network.BindsTo
-    template_Vlan_1:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - cmaui_port_1
-        name:
-          str_replace:
-            template: $NAME$VLAN
-            params:
-              $NAME:
-                get_input: subinterface_name_prefix
-              $VLAN:
-                get_input:
-                - vlan_ids
-                - get_input: subinterface_instance_index
-        virtual_network_refs:
-        - jsa_net1
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: jsa_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: cmaui_port_1
-          relationship: tosca.relationships.network.BindsTo
-  groups:
-    hot_template_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot_template.yml
-        description: cmaui server template for vMMSC
-      members:
-      - jsa_net3
-      - jsa_net2
-      - jsa_net4
-      - template_Vlan_9
-      - jsa_net1
-      - template_Vlan_8
-      - template_Vlan_7
-      - cmaui_port_1
-      - template_VMInt_OAM_lb_1
-      - template_VMInt_OAM_lb_2
-      - template_VMInt_OAM_lb_3
-      - template_VMInt_OAM_lb_4
-      - template_Vlan_6
-      - template_Vlan_5
-      - template_Vlan_4
-      - template_Vlan_3
-      - template_Vlan_2
-      - template_Vlan_1
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_hot_template\r
+            source_type: HEAT\r
+            param_name: lb_st_interface_type_oam\r
+      type: string\r
+      description: dummy\r
+  node_templates:\r
+    template_VMInt_INT1_VLC:\r
+      type: org.openecomp.resource.abstract.nodes.heat.hot_template\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: hot_templateServiceTemplate.yaml\r
+          count: 3\r
+          mandatory: true\r
+        virtual_machine_interface_properties:\r
+          virtual_machine_interface_properties_service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+  groups:\r
+    base_hot_template_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/base_hot_template.yml\r
+        description: |\r
+          Module HOT template to create vmme 2 vlc\r
+      members:\r
+      - template_VMInt_INT1_VLC\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/expectedoutputfiles/hot_templateServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/expectedoutputfiles/hot_templateServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..f06468c
--- /dev/null
@@ -0,0 +1,517 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: hot_template\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    template_PortTuple_LB1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    oam_sec_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    virtual_ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    nems_traffic_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      description: not impotrtant\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    virtual_ipv6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    lb_st_vlan_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    network_ipam_refs_data_ipam_subnets_addr_from_start_true:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    subinterface_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    subinterface_instance_index:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+    network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: dummy\r
+  node_templates:\r
+    jsa_net3:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name: aaa\r
+    jsa_net2:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name:\r
+          get_attribute:\r
+          - template_VMInt_OAM_lb_2\r
+          - virtual_machine_interface_properties\r
+          - virtual_machine_interface_properties_service_interface_type\r
+    jsa_net4:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          get_input: nems_traffic_name\r
+    template_VMInt_OAM_lb_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+        - UNSUPPORTED_RESOURCE_template_Vlan_1\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - jsa_net1\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    template_VMInt_OAM_lb_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - list_join:\r
+          - ':'\r
+          - get_attribute:\r
+            - jsa_net2\r
+            - fq_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+    jsa_net1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_ipam_refs_data:\r
+        - network_ipam_refs_data_ipam_subnets:\r
+          - network_ipam_refs_data_ipam_subnets_subnet:\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len_2\r
+              network_ipam_refs_data_ipam_subnets_subnet_ip_prefix:\r
+                get_input: network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_2\r
+            network_ipam_refs_data_ipam_subnets_addr_from_start:\r
+              get_input: network_ipam_refs_data_ipam_subnets_addr_from_start_true\r
+        network_name:\r
+        - UNSUPPORTED_RESOURCE_template_Vlan_1\r
+    template_VMInt_OAM_lb_3:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - get_attribute:\r
+          - jsa_net3\r
+          - fq_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net3\r
+          relationship: tosca.relationships.network.LinksTo\r
+    template_VMInt_OAM_lb_4:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - get_attribute:\r
+          - jsa_net4\r
+          - fq_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+    cmaui_port_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        replacement_policy: AUTO\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+        - get_input: security_group_name\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        network: jsa_net1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: jsa_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    hot_template_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot_template.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - jsa_net3\r
+      - jsa_net2\r
+      - jsa_net4\r
+      - template_VMInt_OAM_lb_1\r
+      - template_VMInt_OAM_lb_2\r
+      - jsa_net1\r
+      - template_VMInt_OAM_lb_3\r
+      - template_VMInt_OAM_lb_4\r
+      - cmaui_port_1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.hot_template\r
+    capabilities:\r
+      network.incoming.packets.rate_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.incoming.packets.rate\r
+      feature_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - feature\r
+      forwarder_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - forwarder\r
+      feature_jsa_net1:\r
+      - jsa_net1\r
+      - feature\r
+      feature_jsa_net2:\r
+      - jsa_net2\r
+      - feature\r
+      feature_jsa_net3:\r
+      - jsa_net3\r
+      - feature\r
+      binding_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - binding\r
+      feature_jsa_net4:\r
+      - jsa_net4\r
+      - feature\r
+      binding_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - binding\r
+      link_jsa_net2:\r
+      - jsa_net2\r
+      - link\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.bytes_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.bytes\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outgoing.bytes.rate\r
+      link_jsa_net1:\r
+      - jsa_net1\r
+      - link\r
+      network.incoming.bytes_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.bytes\r
+      forwarder_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - forwarder\r
+      network.outgoing.packets.rate_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.outgoing.packets.rate\r
+      link_jsa_net4:\r
+      - jsa_net4\r
+      - link\r
+      network.incoming.bytes_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.bytes\r
+      forwarder_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - forwarder\r
+      network.outgoing.bytes_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.outgoing.bytes\r
+      link_jsa_net3:\r
+      - jsa_net3\r
+      - link\r
+      network.incoming.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes\r
+      forwarder_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - forwarder\r
+      attachment_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - attachment\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.packets.rate\r
+      end_point_jsa_net3:\r
+      - jsa_net3\r
+      - end_point\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.packets.rate\r
+      end_point_jsa_net4:\r
+      - jsa_net4\r
+      - end_point\r
+      network.incoming.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets.rate\r
+      feature_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - feature\r
+      feature_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - feature\r
+      feature_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - feature\r
+      attachment_jsa_net3:\r
+      - jsa_net3\r
+      - attachment\r
+      attachment_jsa_net2:\r
+      - jsa_net2\r
+      - attachment\r
+      feature_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - feature\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outgoing.packets.rate\r
+      attachment_jsa_net4:\r
+      - jsa_net4\r
+      - attachment\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.packets.rate\r
+      forwarder_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - forwarder\r
+      end_point_jsa_net1:\r
+      - jsa_net1\r
+      - end_point\r
+      end_point_jsa_net2:\r
+      - jsa_net2\r
+      - end_point\r
+      attachment_jsa_net1:\r
+      - jsa_net1\r
+      - attachment\r
+      network.outpoing.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outpoing.packets\r
+      network.incoming.packets_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.incoming.packets\r
+      network.outpoing.packets_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outpoing.packets\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.packets.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outgoing.packets.rate\r
+      network.incoming.packets_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.packets\r
+      network.incoming.packets_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outgoing.bytes\r
+      network.incoming.packets_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outgoing.bytes\r
+      network.incoming.packets_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.packets\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.outgoing.bytes\r
+      binding_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - binding\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.bytes.rate_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - network.incoming.bytes.rate\r
+      binding_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - binding\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - network.incoming.bytes.rate\r
+      network.outpoing.packets_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.outpoing.packets\r
+      network.outgoing.bytes.rate_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.bytes_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - network.incoming.bytes\r
+    requirements:\r
+      binding_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - binding\r
+      dependency_jsa_net3:\r
+      - jsa_net3\r
+      - dependency\r
+      binding_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - binding\r
+      dependency_jsa_net2:\r
+      - jsa_net2\r
+      - dependency\r
+      binding_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - binding\r
+      dependency_jsa_net4:\r
+      - jsa_net4\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_1:\r
+      - template_VMInt_OAM_lb_1\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_2:\r
+      - template_VMInt_OAM_lb_2\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - dependency\r
+      dependency_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - dependency\r
+      link_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - link\r
+      dependency_cmaui_port_1:\r
+      - cmaui_port_1\r
+      - dependency\r
+      dependency_jsa_net1:\r
+      - jsa_net1\r
+      - dependency\r
+      binding_template_VMInt_OAM_lb_4:\r
+      - template_VMInt_OAM_lb_4\r
+      - binding\r
+      binding_template_VMInt_OAM_lb_3:\r
+      - template_VMInt_OAM_lb_3\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/inputfiles/base_hot_template.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/contrailv2Vlan/oneInterface/inputfiles/base_hot_template.yml
new file mode 100644 (file)
index 0000000..3af7647
--- /dev/null
@@ -0,0 +1,23 @@
+heat_template_version: 2015-04-30
+
+description: >
+  Module HOT template to create vmme 2 vlc
+
+parameters:
+  lb_st_interface_type_oam:
+    description: dummy
+    type: string
+
+resources:
+  template_VMInt_INT1_VLC:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 3
+      resource_def:
+        type: hot_template.yml
+        properties:
+          virtual_machine_interface_properties:
+            {
+              virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam }
+            }
+
index beda5a1..ed685d7 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-    ppds_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ppds_net_name
-      type: string
-    a_single_1a_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: a_single_1a_names
-      type: string
-    pcm_server_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_server_names
-      type: string
-    pcm_image_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_image_name
-      type: string
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: security_group_name
-      type: string
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      entry_schema:
-        type: string
-    1c2_catalog_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c2_catalog_instance_names
-      type: string
-    pcm_flavor_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_flavor_name
-      type: string
-    b_single_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: b_single_1b_names
-      type: string
-    1c1_scalling_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c1_scalling_instance_names
-      type: string
-    myIPs:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: myIPs
-      type: string
-    net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: net_name
-      type: string
-    oam_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: oam_net_name
-      type: string
-  node_templates:
-    abstract_b_single_1b:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_1b_user_data_format:
-        - RAW
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_b_single_1b_metadata:
-        - connectivityTo4PNested:
-            get_attribute:
-            - 4p_nested
-            - server_pcm_id
-          connectivityTo1C2_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-          connectivityToNoUnifiedNested:
-            get_attribute:
-            - nestedNoUnified
-            - portId
-          connectivityTo1C1_T1_1:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_0:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t1_port_tenant_id
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c1_scalling_instance:
-      type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c1_scalling_instance_user_data_format:
-        - RAW2
-        - RAW1
-        port_1c1_t2_port_network_role_tag: ppds
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1c1_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_1c1_scalling_instance_name:
-        - get_input:
-          - 1c1_scalling_instance_names
-          - 2
-        - get_input:
-          - 1c1_scalling_instance_names
-          - 1
-        port_1c1_t1_port_name:
-        - 1c1_t1_port_1
-        - 1c1_t1_port_0
-        port_1c1_t1_port_network:
-        - 1c1_scalling_instance_network
-        port_1c1_t2_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        port_1c1_t2_port_network:
-        - get_input: ppds_net_name
-        port_1c1_t1_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        port_1c1_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_1c1_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c1_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c1_scalling_instance_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        port_1c1_t2_port_name:
-        - 1c1_t2_port_1
-        - 1c1_t2_port_0
-        compute_1c1_scalling_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        - group: BE_Affinity_group
-        compute_1c1_scalling_instance_metadata:
-        - null
-        - connectivityTo4PNested:
-            get_attribute:
-            - 4p_nested
-            - server_pcm_id
-          connectivityTo1C2_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1A:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityTo1C2_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-          connectivityToNoUnifiedNested:
-            get_attribute:
-            - nestedNoUnified
-            - portId
-          connectivityTo1B02:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-          connectivityTo1B01:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-        service_template_filter:
-          substitute_service_template: Nested_1c1_scalling_instanceServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c1_scalling_instance_1c1_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c1_scalling_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    b_single_1b_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    4p_nested:
-      type: org.openecomp.resource.abstract.nodes.heat.pcm_server
-      directives:
-      - substitutable
-      properties:
-        port_pcm_port_00_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        server_group: BE_Affinity_group
-        connectivityChk:
-          connectivityTo1C2_1:
-            get_attribute:
-            - 1c201_catalog_instance_1C2
-            - instance_name
-          connectivityTo1C2_2:
-            get_attribute:
-            - 1c202_scalling_instance_1C2
-            - instance_name
-          connectivityTo1A:
-            get_attribute:
-            - 1a_single_1A
-            - instance_name
-          connectivityTo1B02:
-            get_attribute:
-            - 1b02_single_1B
-            - instance_name
-            - get_attribute:
-              - 1b01_single_1B
-              - instance_name
-          connectivityTo1B01:
-            get_attribute:
-            - 1b01_single_1B
-            - instance_name
-          connectivityTo1C1_T2_1:
-            get_attribute:
-            - 1c1_t2_port_1
-            - tenant_id
-          connectivityTo1C1_T2_0:
-            get_attribute:
-            - 1c1_t2_port_0
-            - tenant_id
-        pcm_image_name:
-          get_input: pcm_image_name
-        port_pcm_port_00_mac_requirements:
-          mac_count_required:
-            is_required: false
-        security_group_name: jsa_security_group
-        port_pcm_port_01_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pcm_port_00_network_role_tag: cps
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
-        port_pcm_port_01_mac_requirements:
-          mac_count_required:
-            is_required: false
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-        port_pcm_port_01_network_role_tag: oam
-      requirements:
-      - link_pcm_port_00:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_0:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c2_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c2_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c2_t2_port_network:
-        - 1c2_catalog_instance_network
-        compute_1c2_catalog_instance_metadata:
-        - connectivityTo4PNested:
-            get_attribute:
-            - 4p_nested
-            - server_pcm_id
-          connectivityTo1A:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityToNoUnifiedNested:
-            get_attribute:
-            - nestedNoUnified
-            - portId
-          connectivityTo1B02:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-          connectivityTo1B01:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-          connectivityTo1C1_T2_1:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-          connectivityTo1C1_T2_0:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 1
-        port_1c2_t1_port_network:
-        - get_input: oam_net_name
-        port_1c2_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - RAW1
-        port_1c2_t1_port_network_role_tag: oam
-        port_1c2_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_1c2_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_1:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c2_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c2_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c2_t2_port_network:
-        - 1c2_catalog_instance_network
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 2
-        port_1c2_t1_port_network:
-        - get_input: oam_net_name
-        port_1c2_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_instance_name
-        port_1c2_t1_port_network_role_tag: oam
-        port_1c2_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_1c2_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    1c1_scalling_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    nodeGetAttIn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        dhcp_agent_ids:
-          get_attribute:
-          - abstract_1c2_catalog_instance_1
-          - 1c2_catalog_instance_1c2_t1_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_1c2_t1_port_tenant_id
-            - get_attribute:
-              - abstract_1c2_catalog_instance_0
-              - 1c2_catalog_instance_instance_name
-              - get_attribute:
-                - abstract_1c2_catalog_instance_1
-                - 1c2_catalog_instance_instance_name
-        tenant_id:
-          get_attribute:
-          - abstract_1c1_scalling_instance
-          - 1c1_scalling_instance_instance_name
-          - get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_instance_name
-            - get_attribute:
-              - abstract_1c1_scalling_instance
-              - 1c1_scalling_instance_1c1_t2_port_tenant_id
-              - get_attribute:
-                - abstract_1c1_scalling_instance
-                - 1c1_scalling_instance_1c1_t2_port_tenant_id
-        admin_state_up:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_1a_t1_port_tenant_id
-        qos_policy:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_instance_name
-        network_name:
-          get_attribute:
-          - nestedNoUnified
-          - portId
-          - get_attribute:
-            - 4p_nested
-            - server_pcm_id
-        value_specs:
-          get_attribute:
-          - abstract_b_single_1b
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-            - get_attribute:
-              - abstract_b_single_1b
-              - b_single_1b_1b_t1_port_tenant_id
-              - get_attribute:
-                - abstract_b_single_1b_1
-                - b_single_1b_1b_t1_port_tenant_id
-    dependsOn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: nestedNoUnified
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: 4p_nested
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c2_t1_port
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c2_t1_port
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c1_scalling_instance
-          node: abstract_1c1_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c1_scalling_instance_1c1_t2_port
-          node: abstract_1c1_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a_1a_t1_port
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-    abstract_a_single_1a:
-      type: org.openecomp.resource.abstract.nodes.a_single_1a
-      directives:
-      - substitutable
-      properties:
-        compute_a_single_1a_metadata:
-        - connectivityTo4PNested:
-            get_attribute:
-            - 4p_nested
-            - server_pcm_id
-          connectivityTo1C2_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-          connectivityToNoUnifiedNested:
-            get_attribute:
-            - nestedNoUnified
-            - portId
-          connectivityTo1B02:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-            - get_attribute:
-              - abstract_b_single_1b
-              - b_single_1b_instance_name
-          connectivityTo1B01:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-          connectivityTo1C1_T2_1:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-          connectivityTo1C1_T2_0:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-        port_1a_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1a_t2_port_network_role_tag: ppds
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1a_t2_port_network:
-        - get_input: ppds_net_name
-        port_1a_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1a_t1_port_network:
-        - a_single_1a_network
-        vm_image_name:
-          get_input: pd_image_name
-        port_1a_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_a_single_1a_availability_zone:
-        - get_input: availabilityzone_name
-        compute_a_single_1a_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_a_single_1a_user_data_format:
-        - RAW
-        compute_a_single_1a_name:
-        - get_input:
-          - a_single_1a_names
-          - 0
-        port_1a_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_a_single_1a_1a_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: a_single_1a_network
-          relationship: tosca.relationships.network.LinksTo
-    nestedNoUnified:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
-      directives:
-      - substitutable
-      properties:
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml
-        server_group: BE_Affinity_group
-        connectivityChk:
-          connectivityTo1C2_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1A:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityTo1B02:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-            - get_attribute:
-              - abstract_b_single_1b
-              - b_single_1b_instance_name
-          connectivityTo1B01:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-          connectivityTo1C1_T2_1:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-          connectivityTo1C1_T2_0:
-            get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-        pcm_image_name:
-          get_input: pcm_image_name
-        security_group_name: jsa_security_group
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-      requirements:
-      - link_pcm_port_2:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    nested_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    jsa_security_group:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name:
-          get_input: security_group_name
-        description: ems security group
-        rules:
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-      requirements:
-      - port:
-          capability: attachment_pcm_port_00
-          node: 4p_nested
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_01
-          node: 4p_nested
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_0
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_1
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_2
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_3
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-    abstract_b_single_1b_1:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b_1
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_1b_user_data_format:
-        - RAW
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1b_t1_port_value_specs:
-        - get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_1a_t1_port_tenant_id
-        port_1b_t1_port_network_role_tag: oam
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network
-        port_1b_t1_port_network:
-        - get_input: oam_net_name
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network
-          relationship: tosca.relationships.network.LinksTo
-    a_single_1a_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    1c2_catalog_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - b_single_1b_network
-      - 4p_nested
-      - 1c1_scalling_instance_network
-      - nodeGetAttIn_network
-      - dependsOn_network
-      - nestedNoUnified
-      - nested_network
-      - jsa_security_group
-      - a_single_1a_network
-      - 1c2_catalog_instance_network
-      - abstract_a_single_1a
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_1c1_scalling_instance
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-    BE_Affinity_group:
-      type: tosca.groups.Root
-      members:
-      - abstract_a_single_1a
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_1c1_scalling_instance
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-  outputs:
-    out2:
-      value:
-        get_attribute:
-        - abstract_1c2_catalog_instance_1
-        - 1c2_catalog_instance_1c2_t1_port_tenant_id
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_1c2_t1_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-            - get_attribute:
-              - abstract_1c2_catalog_instance_1
-              - 1c2_catalog_instance_instance_name
-    out3:
-      value:
-        get_attribute:
-        - abstract_1c1_scalling_instance
-        - 1c1_scalling_instance_instance_name
-        - get_attribute:
-          - abstract_1c1_scalling_instance
-          - 1c1_scalling_instance_instance_name
-          - get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-            - get_attribute:
-              - abstract_1c1_scalling_instance
-              - 1c1_scalling_instance_1c1_t2_port_tenant_id
-    out4:
-      value:
-        get_attribute:
-        - abstract_b_single_1b
-        - b_single_1b_instance_name
-        - get_attribute:
-          - abstract_b_single_1b_1
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_1b_t1_port_tenant_id
-            - get_attribute:
-              - abstract_b_single_1b_1
-              - b_single_1b_1b_t1_port_tenant_id
-    out5:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_instance_name
-    out1:
-      value:
-        get_attribute:
-        - nestedNoUnified
-        - portId
-        - get_attribute:
-          - 4p_nested
-          - server_pcm_id
-    out6:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_1a_t1_port_tenant_id
-  policies:
-    BE_Affinity_policy:
-      type: org.openecomp.policies.placement.Colocate
-      properties:
-        name: def
-        affinity: host
-      targets:
-      - BE_Affinity_group
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+    ppds_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ppds_net_name\r
+      type: string\r
+    a_single_1a_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: a_single_1a_names\r
+      type: string\r
+    pcm_server_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_server_names\r
+      type: string\r
+    pcm_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_image_name\r
+      type: string\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: string\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      entry_schema:\r
+        type: string\r
+    1c2_catalog_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c2_catalog_instance_names\r
+      type: string\r
+    pcm_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_flavor_name\r
+      type: string\r
+    b_single_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: b_single_1b_names\r
+      type: string\r
+    1c1_scalling_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c1_scalling_instance_names\r
+      type: string\r
+    myIPs:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: myIPs\r
+      type: string\r
+    net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: net_name\r
+      type: string\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+  node_templates:\r
+    abstract_b_single_1b:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_metadata:\r
+        - connectivityTo4PNested:\r
+            get_attribute:\r
+            - 4p_nested\r
+            - server_pcm_id\r
+          connectivityTo1C2_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityToNoUnifiedNested:\r
+            get_attribute:\r
+            - nestedNoUnified\r
+            - portId\r
+          connectivityTo1C1_T1_1:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_0:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t1_port_tenant_id\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c1_scalling_instance:\r
+      type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c1_scalling_instance_user_data_format:\r
+        - RAW2\r
+        - RAW1\r
+        port_1c1_t2_port_network_role_tag: ppds\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1c1_t1_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_1c1_scalling_instance_name:\r
+        - get_input:\r
+          - 1c1_scalling_instance_names\r
+          - 2\r
+        - get_input:\r
+          - 1c1_scalling_instance_names\r
+          - 1\r
+        port_1c1_t1_port_name:\r
+        - 1c1_t1_port_1\r
+        - 1c1_t1_port_0\r
+        port_1c1_t1_port_network:\r
+        - 1c1_scalling_instance_network\r
+        - 1c1_scalling_instance_network\r
+        port_1c1_t2_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        port_1c1_t2_port_network:\r
+        - get_input: ppds_net_name\r
+        - get_input: ppds_net_name\r
+        port_1c1_t1_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        port_1c1_t2_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_1c1_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c1_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c1_scalling_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        port_1c1_t2_port_name:\r
+        - 1c1_t2_port_1\r
+        - 1c1_t2_port_0\r
+        compute_1c1_scalling_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        - group: BE_Affinity_group\r
+        compute_1c1_scalling_instance_metadata:\r
+        - null\r
+        - connectivityTo4PNested:\r
+            get_attribute:\r
+            - 4p_nested\r
+            - server_pcm_id\r
+          connectivityTo1C2_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1A:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityTo1C2_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityToNoUnifiedNested:\r
+            get_attribute:\r
+            - nestedNoUnified\r
+            - portId\r
+          connectivityTo1B02:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+          connectivityTo1B01:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c1_scalling_instanceServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c1_scalling_instance_1c1_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c1_scalling_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    b_single_1b_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    4p_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pcm_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_pcm_port_00_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        server_group: BE_Affinity_group\r
+        connectivityChk:\r
+          connectivityTo1C2_1:\r
+            get_attribute:\r
+            - 1c201_catalog_instance_1C2\r
+            - instance_name\r
+          connectivityTo1C2_2:\r
+            get_attribute:\r
+            - 1c202_scalling_instance_1C2\r
+            - instance_name\r
+          connectivityTo1A:\r
+            get_attribute:\r
+            - 1a_single_1A\r
+            - instance_name\r
+          connectivityTo1B02:\r
+            get_attribute:\r
+            - 1b02_single_1B\r
+            - instance_name\r
+            - get_attribute:\r
+              - 1b01_single_1B\r
+              - instance_name\r
+          connectivityTo1B01:\r
+            get_attribute:\r
+            - 1b01_single_1B\r
+            - instance_name\r
+          connectivityTo1C1_T2_1:\r
+            get_attribute:\r
+            - 1c1_t2_port_1\r
+            - tenant_id\r
+          connectivityTo1C1_T2_0:\r
+            get_attribute:\r
+            - 1c1_t2_port_0\r
+            - tenant_id\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        port_pcm_port_00_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        security_group_name: jsa_security_group\r
+        port_pcm_port_01_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pcm_port_00_network_role_tag: cps\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml\r
+        port_pcm_port_01_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+        port_pcm_port_01_network_role_tag: oam\r
+      requirements:\r
+      - link_pcm_port_00:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_0:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c2_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c2_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c2_t2_port_network:\r
+        - 1c2_catalog_instance_network\r
+        compute_1c2_catalog_instance_metadata:\r
+        - connectivityTo4PNested:\r
+            get_attribute:\r
+            - 4p_nested\r
+            - server_pcm_id\r
+          connectivityTo1A:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityToNoUnifiedNested:\r
+            get_attribute:\r
+            - nestedNoUnified\r
+            - portId\r
+          connectivityTo1B02:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+          connectivityTo1B01:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+          connectivityTo1C1_T2_1:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+          connectivityTo1C1_T2_0:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 1\r
+        port_1c2_t1_port_network:\r
+        - get_input: oam_net_name\r
+        port_1c2_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - RAW1\r
+        port_1c2_t1_port_network_role_tag: oam\r
+        port_1c2_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_1c2_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_1:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c2_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c2_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c2_t2_port_network:\r
+        - 1c2_catalog_instance_network\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 2\r
+        port_1c2_t1_port_network:\r
+        - get_input: oam_net_name\r
+        port_1c2_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_instance_name\r
+        port_1c2_t1_port_network_role_tag: oam\r
+        port_1c2_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_1c2_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    1c1_scalling_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    nodeGetAttIn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        dhcp_agent_ids:\r
+          get_attribute:\r
+          - abstract_1c2_catalog_instance_1\r
+          - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_1c2_catalog_instance_0\r
+              - 1c2_catalog_instance_instance_name\r
+              - get_attribute:\r
+                - abstract_1c2_catalog_instance_1\r
+                - 1c2_catalog_instance_instance_name\r
+        tenant_id:\r
+          get_attribute:\r
+          - abstract_1c1_scalling_instance\r
+          - 1c1_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_instance_name\r
+            - get_attribute:\r
+              - abstract_1c1_scalling_instance\r
+              - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+              - get_attribute:\r
+                - abstract_1c1_scalling_instance\r
+                - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+        admin_state_up:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_1a_t1_port_tenant_id\r
+        qos_policy:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_instance_name\r
+        network_name:\r
+          get_attribute:\r
+          - nestedNoUnified\r
+          - portId\r
+          - get_attribute:\r
+            - 4p_nested\r
+            - server_pcm_id\r
+        value_specs:\r
+          get_attribute:\r
+          - abstract_b_single_1b\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_1b\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+              - get_attribute:\r
+                - abstract_b_single_1b_1\r
+                - b_single_1b_1b_t1_port_tenant_id\r
+    dependsOn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: nestedNoUnified\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: 4p_nested\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c2_t1_port\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c2_t1_port\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c1_scalling_instance\r
+          node: abstract_1c1_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c1_scalling_instance_1c1_t2_port\r
+          node: abstract_1c1_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a_1a_t1_port\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+    abstract_a_single_1a:\r
+      type: org.openecomp.resource.abstract.nodes.a_single_1a\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_a_single_1a_metadata:\r
+        - connectivityTo4PNested:\r
+            get_attribute:\r
+            - 4p_nested\r
+            - server_pcm_id\r
+          connectivityTo1C2_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityToNoUnifiedNested:\r
+            get_attribute:\r
+            - nestedNoUnified\r
+            - portId\r
+          connectivityTo1B02:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_1b\r
+              - b_single_1b_instance_name\r
+          connectivityTo1B01:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+          connectivityTo1C1_T2_1:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+          connectivityTo1C1_T2_0:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+        port_1a_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1a_t2_port_network_role_tag: ppds\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1a_t2_port_network:\r
+        - get_input: ppds_net_name\r
+        port_1a_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1a_t1_port_network:\r
+        - a_single_1a_network\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1a_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_a_single_1a_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_a_single_1a_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_a_single_1a_user_data_format:\r
+        - RAW\r
+        compute_a_single_1a_name:\r
+        - get_input:\r
+          - a_single_1a_names\r
+          - 0\r
+        port_1a_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_a_single_1a_1a_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: a_single_1a_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nestedNoUnified:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml\r
+        server_group: BE_Affinity_group\r
+        connectivityChk:\r
+          connectivityTo1C2_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1A:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityTo1B02:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_1b\r
+              - b_single_1b_instance_name\r
+          connectivityTo1B01:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+          connectivityTo1C1_T2_1:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+          connectivityTo1C1_T2_0:\r
+            get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        security_group_name: jsa_security_group\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+      requirements:\r
+      - link_pcm_port_2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_pcm_port_0:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nested_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    jsa_security_group:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules\r
+      properties:\r
+        name:\r
+          get_input: security_group_name\r
+        description: ems security group\r
+        rules:\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+      requirements:\r
+      - port:\r
+          capability: attachment_pcm_port_00\r
+          node: 4p_nested\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_01\r
+          node: 4p_nested\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_0\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_1\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_2\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_3\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+    abstract_b_single_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1b_t1_port_value_specs:\r
+        - get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_1a_t1_port_tenant_id\r
+        port_1b_t1_port_network_role_tag: oam\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network\r
+        port_1b_t1_port_network:\r
+        - get_input: oam_net_name\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    a_single_1a_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    1c2_catalog_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - b_single_1b_network\r
+      - 4p_nested\r
+      - 1c1_scalling_instance_network\r
+      - nodeGetAttIn_network\r
+      - dependsOn_network\r
+      - nestedNoUnified\r
+      - nested_network\r
+      - jsa_security_group\r
+      - a_single_1a_network\r
+      - 1c2_catalog_instance_network\r
+      - abstract_a_single_1a\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_1c1_scalling_instance\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+    BE_Affinity_group:\r
+      type: tosca.groups.Root\r
+      members:\r
+      - abstract_a_single_1a\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_1c1_scalling_instance\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+  outputs:\r
+    out2:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c2_catalog_instance_1\r
+        - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+            - get_attribute:\r
+              - abstract_1c2_catalog_instance_1\r
+              - 1c2_catalog_instance_instance_name\r
+    out3:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c1_scalling_instance\r
+        - 1c1_scalling_instance_instance_name\r
+        - get_attribute:\r
+          - abstract_1c1_scalling_instance\r
+          - 1c1_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_1c1_scalling_instance\r
+              - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+    out4:\r
+      value:\r
+        get_attribute:\r
+        - abstract_b_single_1b\r
+        - b_single_1b_instance_name\r
+        - get_attribute:\r
+          - abstract_b_single_1b_1\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_1b_t1_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_b_single_1b_1\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+    out5:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_instance_name\r
+    out1:\r
+      value:\r
+        get_attribute:\r
+        - nestedNoUnified\r
+        - portId\r
+        - get_attribute:\r
+          - 4p_nested\r
+          - server_pcm_id\r
+    out6:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_1a_t1_port_tenant_id\r
+  policies:\r
+    BE_Affinity_policy:\r
+      type: org.openecomp.policies.placement.Colocate\r
+      properties:\r
+        name: def\r
+        affinity: host\r
+      targets:\r
+      - BE_Affinity_group\r
\ No newline at end of file
index 2b1e961..040bf19 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-    ppds_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ppds_net_name
-      type: string
-    a_single_1a_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: a_single_1a_names
-      type: string
-    pcm_server_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_server_names
-      type: string
-    pcm_image_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_image_name
-      type: string
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: security_group_name
-      type: string
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      entry_schema:
-        type: string
-    1c2_catalog_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c2_catalog_instance_names
-      type: string
-    pcm_flavor_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_flavor_name
-      type: string
-    b_single_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: b_single_1b_names
-      type: string
-    1c1_scalling_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c1_scalling_instance_names
-      type: string
-    myIPs:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: myIPs
-      type: string
-    net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: net_name
-      type: string
-    oam_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: oam_net_name
-      type: string
-  node_templates:
-    nestedNoNestedSingleComputePattern:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
-      directives:
-      - substitutable
-      properties:
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml
-        server_group: BE_Affinity_group
-        pcm_image_name:
-          get_input: pcm_image_name
-        security_group_name: jsa_security_group
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-      requirements:
-      - link_pcm_port_2_0:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-      - link_pcm_port_0_0:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_b_single_1b:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b
-      directives:
-      - substitutable
-      properties:
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network
-        compute_b_single_1b_user_data_format:
-        - RAW
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c1_scalling_instance:
-      type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c1_scalling_instance_user_data_format:
-        - RAW2
-        - RAW1
-        port_1c1_t2_port_network_role_tag: ppds
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1c1_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_1c1_scalling_instance_name:
-        - get_input:
-          - 1c1_scalling_instance_names
-          - 2
-        - get_input:
-          - 1c1_scalling_instance_names
-          - 1
-        port_1c1_t1_port_name:
-        - 1c1_t1_port_1
-        - 1c1_t1_port_0
-        port_1c1_t1_port_network:
-        - 1c1_scalling_instance_network
-        port_1c1_t2_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        port_1c1_t2_port_network:
-        - get_input: ppds_net_name
-        port_1c1_t1_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        port_1c1_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_1c1_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c1_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c1_scalling_instance_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        port_1c1_t2_port_name:
-        - 1c1_t2_port_1
-        - 1c1_t2_port_0
-        compute_1c1_scalling_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c1_scalling_instanceServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c1_scalling_instance_1c1_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c1_scalling_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    b_single_1b_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    nestedWithNoNovaHadDependencyToIt:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no-nova
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested-no-novaServiceTemplate.yaml
-        security_group_name: group1
-        net_name: myNetwork
-    4p_nested:
-      type: org.openecomp.resource.abstract.nodes.heat.pcm_server
-      directives:
-      - substitutable
-      properties:
-        server_group: BE_Affinity_group
-        port_pcm_port_1_network_role_tag: oam
-        port_pcm_port_0_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        pcm_image_name:
-          get_input: pcm_image_name
-        security_group_name: jsa_security_group
-        port_pcm_port_1_mac_requirements:
-          mac_count_required:
-            is_required: false
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
-        port_pcm_port_1_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pcm_port_0_network_role_tag: cps
-        port_pcm_port_0_mac_requirements:
-          mac_count_required:
-            is_required: false
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-      requirements:
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_0:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c2_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c2_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c2_t2_port_network:
-        - 1c2_catalog_instance_network
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 1
-        port_1c2_t1_port_network:
-        - get_input: oam_net_name
-        port_1c2_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - RAW1
-        port_1c2_t1_port_network_role_tag: oam
-        port_1c2_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_1c2_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_1:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c2_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c2_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c2_t2_port_network:
-        - 1c2_catalog_instance_network
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 2
-        port_1c2_t1_port_network:
-        - get_input: oam_net_name
-        port_1c2_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_instance_name
-        port_1c2_t1_port_network_role_tag: oam
-        port_1c2_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_1c2_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    nestedWithNoNova:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no-nova
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested-no-novaServiceTemplate.yaml
-        security_group_name: group1
-        net_name: myNetwork
-    1c1_scalling_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    nodeGetAttIn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        dhcp_agent_ids:
-          get_attribute:
-          - abstract_1c2_catalog_instance_1
-          - 1c2_catalog_instance_1c2_t1_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_1c2_t1_port_tenant_id
-            - get_attribute:
-              - abstract_1c2_catalog_instance_0
-              - 1c2_catalog_instance_instance_name
-              - get_attribute:
-                - abstract_1c2_catalog_instance_1
-                - 1c2_catalog_instance_instance_name
-        tenant_id:
-          get_attribute:
-          - abstract_1c1_scalling_instance
-          - 1c1_scalling_instance_instance_name
-          - get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_instance_name
-            - get_attribute:
-              - abstract_1c1_scalling_instance
-              - 1c1_scalling_instance_1c1_t2_port_tenant_id
-              - get_attribute:
-                - abstract_1c1_scalling_instance
-                - 1c1_scalling_instance_1c1_t2_port_tenant_id
-        admin_state_up:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_1a_t1_port_tenant_id
-        qos_policy:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_instance_name
-        network_name:
-          get_attribute:
-          - nestedNoNestedSingleComputePattern
-          - portId
-          - get_attribute:
-            - 4p_nested
-            - server_pcm_id
-        value_specs:
-          get_attribute:
-          - abstract_b_single_1b
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-            - get_attribute:
-              - abstract_b_single_1b
-              - b_single_1b_1b_t1_port_tenant_id
-              - get_attribute:
-                - abstract_b_single_1b_1
-                - b_single_1b_1b_t1_port_tenant_id
-    dependsOn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: nestedNoNestedSingleComputePattern
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: 4p_nested
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c2_t1_port
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c2_t1_port
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c1_scalling_instance
-          node: abstract_1c1_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c1_scalling_instance_1c1_t2_port
-          node: abstract_1c1_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a_1a_t1_port
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: nestedWithNoNovaHadDependencyToIt
-          relationship: tosca.relationships.DependsOn
-    abstract_a_single_1a:
-      type: org.openecomp.resource.abstract.nodes.a_single_1a
-      directives:
-      - substitutable
-      properties:
-        port_1a_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1a_t2_port_network_role_tag: ppds
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1a_t2_port_network:
-        - get_input: ppds_net_name
-        port_1a_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1a_t1_port_network:
-        - a_single_1a_network
-        vm_image_name:
-          get_input: pd_image_name
-        port_1a_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_a_single_1a_availability_zone:
-        - get_input: availabilityzone_name
-        compute_a_single_1a_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_a_single_1a_user_data_format:
-        - RAW
-        compute_a_single_1a_name:
-        - get_input:
-          - a_single_1a_names
-          - 0
-        port_1a_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_a_single_1a_1a_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: a_single_1a_network
-          relationship: tosca.relationships.network.LinksTo
-    nested_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    jsa_security_group:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name:
-          get_input: security_group_name
-        description: ems security group
-        rules:
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-      requirements:
-      - port:
-          capability: attachment_pcm_port_0
-          node: 4p_nested
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_1
-          node: 4p_nested
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_0_0
-          node: nestedNoNestedSingleComputePattern
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_3_0
-          node: nestedNoNestedSingleComputePattern
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_2_0
-          node: nestedNoNestedSingleComputePattern
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_1_0
-          node: nestedNoNestedSingleComputePattern
-          relationship: org.openecomp.relationships.AttachesTo
-    abstract_b_single_1b_1:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b_1
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_1b_user_data_format:
-        - RAW
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1b_t1_port_network_role_tag: oam
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network
-        port_1b_t1_port_network:
-        - get_input: oam_net_name
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network
-          relationship: tosca.relationships.network.LinksTo
-    a_single_1a_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    1c2_catalog_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - nestedNoNestedSingleComputePattern
-      - b_single_1b_network
-      - nestedWithNoNovaHadDependencyToIt
-      - 4p_nested
-      - nestedWithNoNova
-      - 1c1_scalling_instance_network
-      - nodeGetAttIn_network
-      - dependsOn_network
-      - nested_network
-      - jsa_security_group
-      - a_single_1a_network
-      - 1c2_catalog_instance_network
-      - abstract_a_single_1a
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_1c1_scalling_instance
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-    BE_Affinity_group:
-      type: tosca.groups.Root
-      members:
-      - abstract_a_single_1a
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_1c1_scalling_instance
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-  outputs:
-    out2:
-      value:
-        get_attribute:
-        - abstract_1c2_catalog_instance_1
-        - 1c2_catalog_instance_1c2_t1_port_tenant_id
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_1c2_t1_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-            - get_attribute:
-              - abstract_1c2_catalog_instance_1
-              - 1c2_catalog_instance_instance_name
-    out3:
-      value:
-        get_attribute:
-        - abstract_1c1_scalling_instance
-        - 1c1_scalling_instance_instance_name
-        - get_attribute:
-          - abstract_1c1_scalling_instance
-          - 1c1_scalling_instance_instance_name
-          - get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-            - get_attribute:
-              - abstract_1c1_scalling_instance
-              - 1c1_scalling_instance_1c1_t2_port_tenant_id
-    out4:
-      value:
-        get_attribute:
-        - abstract_b_single_1b
-        - b_single_1b_instance_name
-        - get_attribute:
-          - abstract_b_single_1b_1
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_1b_t1_port_tenant_id
-            - get_attribute:
-              - abstract_b_single_1b_1
-              - b_single_1b_1b_t1_port_tenant_id
-    out5:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_instance_name
-    out1:
-      value:
-        get_attribute:
-        - nestedNoNestedSingleComputePattern
-        - portId
-        - get_attribute:
-          - 4p_nested
-          - server_pcm_id
-    out6:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_1a_t1_port_tenant_id
-    out7:
-      value:
-        get_attribute:
-        - nestedWithNoNovaHadDependencyToIt
-        - output1
-  policies:
-    BE_Affinity_policy:
-      type: org.openecomp.policies.placement.Colocate
-      properties:
-        name: def
-        affinity: host
-      targets:
-      - BE_Affinity_group
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+    ppds_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ppds_net_name\r
+      type: string\r
+    a_single_1a_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: a_single_1a_names\r
+      type: string\r
+    pcm_server_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_server_names\r
+      type: string\r
+    pcm_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_image_name\r
+      type: string\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: string\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      entry_schema:\r
+        type: string\r
+    1c2_catalog_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c2_catalog_instance_names\r
+      type: string\r
+    pcm_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_flavor_name\r
+      type: string\r
+    b_single_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: b_single_1b_names\r
+      type: string\r
+    1c1_scalling_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c1_scalling_instance_names\r
+      type: string\r
+    myIPs:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: myIPs\r
+      type: string\r
+    net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: net_name\r
+      type: string\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+  node_templates:\r
+    nestedNoNestedSingleComputePattern:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml\r
+        server_group: BE_Affinity_group\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        security_group_name: jsa_security_group\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+      requirements:\r
+      - link_pcm_port_2_0:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_pcm_port_0_0:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_b_single_1b:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c1_scalling_instance:\r
+      type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c1_scalling_instance_user_data_format:\r
+        - RAW2\r
+        - RAW1\r
+        port_1c1_t2_port_network_role_tag: ppds\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1c1_t1_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_1c1_scalling_instance_name:\r
+        - get_input:\r
+          - 1c1_scalling_instance_names\r
+          - 2\r
+        - get_input:\r
+          - 1c1_scalling_instance_names\r
+          - 1\r
+        port_1c1_t1_port_name:\r
+        - 1c1_t1_port_1\r
+        - 1c1_t1_port_0\r
+        port_1c1_t1_port_network:\r
+        - 1c1_scalling_instance_network\r
+        - 1c1_scalling_instance_network\r
+        port_1c1_t2_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        port_1c1_t2_port_network:\r
+        - get_input: ppds_net_name\r
+        - get_input: ppds_net_name\r
+        port_1c1_t1_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        port_1c1_t2_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_1c1_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c1_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c1_scalling_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        port_1c1_t2_port_name:\r
+        - 1c1_t2_port_1\r
+        - 1c1_t2_port_0\r
+        compute_1c1_scalling_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c1_scalling_instanceServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c1_scalling_instance_1c1_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c1_scalling_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    b_single_1b_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    nestedWithNoNovaHadDependencyToIt:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no-nova\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested-no-novaServiceTemplate.yaml\r
+        security_group_name: group1\r
+        net_name: myNetwork\r
+    4p_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pcm_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        server_group: BE_Affinity_group\r
+        port_pcm_port_1_network_role_tag: oam\r
+        port_pcm_port_0_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        security_group_name: jsa_security_group\r
+        port_pcm_port_1_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml\r
+        port_pcm_port_1_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pcm_port_0_network_role_tag: cps\r
+        port_pcm_port_0_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+      requirements:\r
+      - link_pcm_port_0:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_0:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c2_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c2_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c2_t2_port_network:\r
+        - 1c2_catalog_instance_network\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 1\r
+        port_1c2_t1_port_network:\r
+        - get_input: oam_net_name\r
+        port_1c2_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - RAW1\r
+        port_1c2_t1_port_network_role_tag: oam\r
+        port_1c2_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_1c2_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_1:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c2_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c2_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c2_t2_port_network:\r
+        - 1c2_catalog_instance_network\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 2\r
+        port_1c2_t1_port_network:\r
+        - get_input: oam_net_name\r
+        port_1c2_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_instance_name\r
+        port_1c2_t1_port_network_role_tag: oam\r
+        port_1c2_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_1c2_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nestedWithNoNova:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no-nova\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested-no-novaServiceTemplate.yaml\r
+        security_group_name: group1\r
+        net_name: myNetwork\r
+    1c1_scalling_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    nodeGetAttIn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        dhcp_agent_ids:\r
+          get_attribute:\r
+          - abstract_1c2_catalog_instance_1\r
+          - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_1c2_catalog_instance_0\r
+              - 1c2_catalog_instance_instance_name\r
+              - get_attribute:\r
+                - abstract_1c2_catalog_instance_1\r
+                - 1c2_catalog_instance_instance_name\r
+        tenant_id:\r
+          get_attribute:\r
+          - abstract_1c1_scalling_instance\r
+          - 1c1_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_instance_name\r
+            - get_attribute:\r
+              - abstract_1c1_scalling_instance\r
+              - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+              - get_attribute:\r
+                - abstract_1c1_scalling_instance\r
+                - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+        admin_state_up:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_1a_t1_port_tenant_id\r
+        qos_policy:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_instance_name\r
+        network_name:\r
+          get_attribute:\r
+          - nestedNoNestedSingleComputePattern\r
+          - portId\r
+          - get_attribute:\r
+            - 4p_nested\r
+            - server_pcm_id\r
+        value_specs:\r
+          get_attribute:\r
+          - abstract_b_single_1b\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_1b\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+              - get_attribute:\r
+                - abstract_b_single_1b_1\r
+                - b_single_1b_1b_t1_port_tenant_id\r
+    dependsOn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: nestedNoNestedSingleComputePattern\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: 4p_nested\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c2_t1_port\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c2_t1_port\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c1_scalling_instance\r
+          node: abstract_1c1_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c1_scalling_instance_1c1_t2_port\r
+          node: abstract_1c1_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a_1a_t1_port\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: nestedWithNoNovaHadDependencyToIt\r
+          relationship: tosca.relationships.DependsOn\r
+    abstract_a_single_1a:\r
+      type: org.openecomp.resource.abstract.nodes.a_single_1a\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_1a_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1a_t2_port_network_role_tag: ppds\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1a_t2_port_network:\r
+        - get_input: ppds_net_name\r
+        port_1a_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1a_t1_port_network:\r
+        - a_single_1a_network\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1a_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_a_single_1a_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_a_single_1a_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_a_single_1a_user_data_format:\r
+        - RAW\r
+        compute_a_single_1a_name:\r
+        - get_input:\r
+          - a_single_1a_names\r
+          - 0\r
+        port_1a_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_a_single_1a_1a_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: a_single_1a_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nested_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    jsa_security_group:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules\r
+      properties:\r
+        name:\r
+          get_input: security_group_name\r
+        description: ems security group\r
+        rules:\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+      requirements:\r
+      - port:\r
+          capability: attachment_pcm_port_0\r
+          node: 4p_nested\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_1\r
+          node: 4p_nested\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_0_0\r
+          node: nestedNoNestedSingleComputePattern\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_3_0\r
+          node: nestedNoNestedSingleComputePattern\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_2_0\r
+          node: nestedNoNestedSingleComputePattern\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_1_0\r
+          node: nestedNoNestedSingleComputePattern\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+    abstract_b_single_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1b_t1_port_network_role_tag: oam\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network\r
+        port_1b_t1_port_network:\r
+        - get_input: oam_net_name\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    a_single_1a_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    1c2_catalog_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - nestedNoNestedSingleComputePattern\r
+      - b_single_1b_network\r
+      - nestedWithNoNovaHadDependencyToIt\r
+      - 4p_nested\r
+      - nestedWithNoNova\r
+      - 1c1_scalling_instance_network\r
+      - nodeGetAttIn_network\r
+      - dependsOn_network\r
+      - nested_network\r
+      - jsa_security_group\r
+      - a_single_1a_network\r
+      - 1c2_catalog_instance_network\r
+      - abstract_a_single_1a\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_1c1_scalling_instance\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+    BE_Affinity_group:\r
+      type: tosca.groups.Root\r
+      members:\r
+      - abstract_a_single_1a\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_1c1_scalling_instance\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+  outputs:\r
+    out2:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c2_catalog_instance_1\r
+        - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+            - get_attribute:\r
+              - abstract_1c2_catalog_instance_1\r
+              - 1c2_catalog_instance_instance_name\r
+    out3:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c1_scalling_instance\r
+        - 1c1_scalling_instance_instance_name\r
+        - get_attribute:\r
+          - abstract_1c1_scalling_instance\r
+          - 1c1_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_1c1_scalling_instance\r
+              - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+    out4:\r
+      value:\r
+        get_attribute:\r
+        - abstract_b_single_1b\r
+        - b_single_1b_instance_name\r
+        - get_attribute:\r
+          - abstract_b_single_1b_1\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_1b_t1_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_b_single_1b_1\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+    out5:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_instance_name\r
+    out1:\r
+      value:\r
+        get_attribute:\r
+        - nestedNoNestedSingleComputePattern\r
+        - portId\r
+        - get_attribute:\r
+          - 4p_nested\r
+          - server_pcm_id\r
+    out6:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_1a_t1_port_tenant_id\r
+    out7:\r
+      value:\r
+        get_attribute:\r
+        - nestedWithNoNovaHadDependencyToIt\r
+        - output1\r
+  policies:\r
+    BE_Affinity_policy:\r
+      type: org.openecomp.policies.placement.Colocate\r
+      properties:\r
+        name: def\r
+        affinity: host\r
+      targets:\r
+      - BE_Affinity_group\r
\ No newline at end of file
index ebc6ed1..f7fb648 100644 (file)
@@ -118,104 +118,35 @@ parameters:
     type: string
     description: oam gw
 resources:
-
-
-
   lb_0_int_oam_int_0_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: int_oam_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: int_oam_int_net_id }]
-      security_group_refs: [{ get_param: int_oam_int_sec_group_id}]
+      network: {get_param: int_oam_int_net_id}
 
   lb_0_lb1_gwaf_int_1_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb1_gwaf_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: lb1_gwaf_int_net_id }]
-      security_group_refs: [{ get_param: lb1_gwaf_int_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_0_oam_protected_2_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_network_refs: [{ get_param: oam_protected_net }]
-      service_health_check_refs: 
-        - get_resource: lb_oam_protected_hc
-      ecmp_hashing_include_fields:
-        ecmp_hashing_include_fields_hashing_configured: { get_param: ecmp_hashing_include_fields_hashing_configured }
-        ecmp_hashing_include_fields_source_ip: { get_param: ecmp_hashing_include_fields_source_ip }
-        ecmp_hashing_include_fields_destination_port: { get_param: ecmp_hashing_include_fields_destination_port }
-        ecmp_hashing_include_fields_destination_ip: { get_param: ecmp_hashing_include_fields_destination_ip }
-        ecmp_hashing_include_fields_source_port: { get_param: ecmp_hashing_include_fields_source_port }
-        ecmp_hashing_include_fields_ip_protocol: { get_param: ecmp_hashing_include_fields_ip_protocol }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-          virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
-            [{
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-                {
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_core_ip_prefix },
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_core_ip_prefix_len },
-                },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: aap_core_mac },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_core_ha_mode },
-            }],
-        }
-      security_group_refs: [{ get_param: oam_protected_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_1_int_oam_int_0_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: int_oam_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: int_oam_int_net_id }]
-      security_group_refs: [{ get_param: int_oam_int_sec_group_id}]
+      network: {get_param: int_oam_int_net_id}
 
   lb_1_lb1_gwaf_int_1_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb1_gwaf_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: lb1_gwaf_int_net_id }]
-      security_group_refs: [{ get_param: lb1_gwaf_int_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_1_oam_protected_2_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_network_refs: [{ get_param: oam_protected_net }]
-      service_health_check_refs: 
-        - get_resource: lb_oam_protected_hc
-      ecmp_hashing_include_fields:
-        ecmp_hashing_include_fields_hashing_configured: { get_param: ecmp_hashing_include_fields_hashing_configured }
-        ecmp_hashing_include_fields_source_ip: { get_param: ecmp_hashing_include_fields_source_ip }
-        ecmp_hashing_include_fields_destination_port: { get_param: ecmp_hashing_include_fields_destination_port }
-        ecmp_hashing_include_fields_destination_ip: { get_param: ecmp_hashing_include_fields_destination_ip }
-        ecmp_hashing_include_fields_source_port: { get_param: ecmp_hashing_include_fields_source_port }
-        ecmp_hashing_include_fields_ip_protocol: { get_param: ecmp_hashing_include_fields_ip_protocol }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-          virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
-            [{
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-                {
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_core_ip_prefix },
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_core_ip_prefix_len },
-                },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: aap_core_mac },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_core_ha_mode },
-            }],
-        }
-      security_group_refs: [{ get_param: oam_protected_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_0_int_oam_int_0_ip:
     type: OS::ContrailV2::InstanceIp
index cfbfdad..cef236f 100644 (file)
@@ -122,102 +122,35 @@ parameters:
     description:  health check
 
 resources:
-
   lb_0_int_oam_int_0_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: int_oam_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: int_oam_int_net_id }]
-      security_group_refs: [{ get_param: int_oam_int_sec_group_id}]
+      network: {get_param: int_oam_int_net_id}
 
   lb_0_apps_int_1_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: apps_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: apps_int_net_id }]
-      security_group_refs: [{ get_param: apps_int_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_0_gwaf_lb2_int_2_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_network_refs: [{ get_param: gwaf_lb2_int_net_id }]
-      service_health_check_refs: 
-        - get_resource: lb_gwaf_lb2_hc
-      ecmp_hashing_include_fields:
-        ecmp_hashing_include_fields_hashing_configured: { get_param: ecmp_hashing_include_fields_hashing_configured }
-        ecmp_hashing_include_fields_source_ip: { get_param: ecmp_hashing_include_fields_source_ip }
-        ecmp_hashing_include_fields_destination_port: { get_param: ecmp_hashing_include_fields_destination_port }
-        ecmp_hashing_include_fields_destination_ip: { get_param: ecmp_hashing_include_fields_destination_ip }
-        ecmp_hashing_include_fields_source_port: { get_param: ecmp_hashing_include_fields_source_port }
-        ecmp_hashing_include_fields_ip_protocol: { get_param: ecmp_hashing_include_fields_ip_protocol }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-          virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
-            [{
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-                {
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_core_ip_prefix },
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_core_ip_prefix_len },
-                },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: aap_core_mac },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_core_ha_mode },
-            }],
-        }
-      security_group_refs: [{ get_param: gwaf_lb2_int_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_1_int_oam_int_0_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: int_oam_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: int_oam_int_net_id }]
-      security_group_refs: [{ get_param: int_oam_int_sec_group_id}]      
+      network: {get_param: int_oam_int_net_id}
 
   lb_1_apps_int_1_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: apps_int_net_id },
-        }
-      virtual_network_refs: [{ get_param: apps_int_net_id }]
-      security_group_refs: [{ get_param: apps_int_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_1_gwaf_lb2_int_2_port:
-    type: OS::ContrailV2::VirtualMachineInterface
+    type: OS::Neutron::Port
     properties:
-      virtual_network_refs: [{ get_param: gwaf_lb2_int_net_id }]
-      service_health_check_refs: 
-        - get_resource: lb_gwaf_lb2_hc
-      ecmp_hashing_include_fields:
-        ecmp_hashing_include_fields_hashing_configured: { get_param: ecmp_hashing_include_fields_hashing_configured }
-        ecmp_hashing_include_fields_source_ip: { get_param: ecmp_hashing_include_fields_source_ip }
-        ecmp_hashing_include_fields_destination_port: { get_param: ecmp_hashing_include_fields_destination_port }
-        ecmp_hashing_include_fields_destination_ip: { get_param: ecmp_hashing_include_fields_destination_ip }
-        ecmp_hashing_include_fields_source_port: { get_param: ecmp_hashing_include_fields_source_port }
-        ecmp_hashing_include_fields_ip_protocol: { get_param: ecmp_hashing_include_fields_ip_protocol }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-          virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
-            [{
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-                {
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_core_ip_prefix },
-                  virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_core_ip_prefix_len },
-                },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: aap_core_mac },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_core_ha_mode },
-            }],
-        }
-      security_group_refs: [{ get_param: gwaf_lb2_int_sec_group_id }]
+      network: {get_param: int_oam_int_net_id}
 
   lb_0_int_oam_int_0_ip:
     type: OS::ContrailV2::InstanceIp
index 05ad6b1..85fb0d5 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-    ppds_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ppds_net_name
-      type: string
-    a_single_1a_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: a_single_1a_names
-      type: string
-    pcm_server_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_server_names
-      type: string
-    pcm_image_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_image_name
-      type: string
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: security_group_name
-      type: string
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      entry_schema:
-        type: string
-    1c2_catalog_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c2_catalog_instance_names
-      type: string
-    pcm_flavor_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_flavor_name
-      type: string
-    b_single_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: b_single_1b_names
-      type: string
-    1c1_scalling_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c1_scalling_instance_names
-      type: string
-    myIPs:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: myIPs
-      type: string
-    net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: net_name
-      type: string
-    oam_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: oam_net_name
-      type: string
-  node_templates:
-    abstract_b_single_1b:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b
-      directives:
-      - substitutable
-      properties:
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network
-        compute_b_single_1b_user_data_format:
-        - RAW
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c1_scalling_instance:
-      type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c1_scalling_instance_user_data_format:
-        - RAW2
-        - RAW1
-        port_1c1_t2_port_network_role_tag: ppds
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1c1_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_1c1_scalling_instance_name:
-        - get_input:
-          - 1c1_scalling_instance_names
-          - 2
-        - get_input:
-          - 1c1_scalling_instance_names
-          - 1
-        port_1c1_t1_port_name:
-        - 1c1_t1_port_1
-        - 1c1_t1_port_0
-        port_1c1_t1_port_network:
-        - 1c1_scalling_instance_network
-        port_1c1_t2_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        port_1c1_t2_port_network:
-        - get_input: ppds_net_name
-        port_1c1_t1_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        port_1c1_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_1c1_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c1_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c1_scalling_instance_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        port_1c1_t2_port_name:
-        - 1c1_t2_port_1
-        - 1c1_t2_port_0
-        compute_1c1_scalling_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c1_scalling_instanceServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c1_scalling_instance_1c1_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c1_scalling_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    b_single_1b_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    4p_nested:
-      type: org.openecomp.resource.abstract.nodes.heat.pcm_server
-      directives:
-      - substitutable
-      properties:
-        port_pcm_port_00_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        server_group: BE_Affinity_group
-        pcm_image_name:
-          get_input: pcm_image_name
-        port_pcm_port_00_mac_requirements:
-          mac_count_required:
-            is_required: false
-        security_group_name: jsa_security_group
-        port_pcm_port_01_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pcm_port_00_network_role_tag: cps
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
-        port_pcm_port_01_mac_requirements:
-          mac_count_required:
-            is_required: false
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-        port_pcm_port_01_network_role_tag: oam
-      requirements:
-      - link_pcm_port_00:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_0:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c2_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c2_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c2_t2_port_network:
-        - 1c2_catalog_instance_network
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 1
-        port_1c2_t1_port_network:
-        - get_input: oam_net_name
-        port_1c2_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - RAW1
-        port_1c2_t1_port_network_role_tag: oam
-        port_1c2_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_1c2_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_1:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c2_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c2_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c2_t2_port_network:
-        - 1c2_catalog_instance_network
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 2
-        port_1c2_t1_port_network:
-        - get_input: oam_net_name
-        port_1c2_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_instance_name
-        port_1c2_t1_port_network_role_tag: oam
-        port_1c2_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_1c2_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    1c1_scalling_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    nodeGetAttIn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        dhcp_agent_ids:
-          get_attribute:
-          - abstract_1c2_catalog_instance_1
-          - 1c2_catalog_instance_1c2_t1_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_1c2_t1_port_tenant_id
-            - get_attribute:
-              - abstract_1c2_catalog_instance_0
-              - 1c2_catalog_instance_instance_name
-              - get_attribute:
-                - abstract_1c2_catalog_instance_1
-                - 1c2_catalog_instance_instance_name
-        tenant_id:
-          get_attribute:
-          - abstract_1c1_scalling_instance
-          - 1c1_scalling_instance_instance_name
-          - get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_instance_name
-            - get_attribute:
-              - abstract_1c1_scalling_instance
-              - 1c1_scalling_instance_1c1_t2_port_tenant_id
-              - get_attribute:
-                - abstract_1c1_scalling_instance
-                - 1c1_scalling_instance_1c1_t2_port_tenant_id
-        admin_state_up:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_1a_t1_port_tenant_id
-        qos_policy:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_instance_name
-        network_name:
-          get_attribute:
-          - nestedNoUnified
-          - portId
-          - get_attribute:
-            - 4p_nested
-            - server_pcm_id
-        value_specs:
-          get_attribute:
-          - abstract_b_single_1b
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-            - get_attribute:
-              - abstract_b_single_1b
-              - b_single_1b_1b_t1_port_tenant_id
-              - get_attribute:
-                - abstract_b_single_1b_1
-                - b_single_1b_1b_t1_port_tenant_id
-    dependsOn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: nestedNoUnified
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: 4p_nested
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c2_t1_port
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c2_t1_port
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c1_scalling_instance
-          node: abstract_1c1_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c1_scalling_instance_1c1_t2_port
-          node: abstract_1c1_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a_1a_t1_port
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-    abstract_a_single_1a:
-      type: org.openecomp.resource.abstract.nodes.a_single_1a
-      directives:
-      - substitutable
-      properties:
-        port_1a_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1a_t2_port_network_role_tag: ppds
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1a_t2_port_network:
-        - get_input: ppds_net_name
-        port_1a_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1a_t1_port_network:
-        - a_single_1a_network
-        vm_image_name:
-          get_input: pd_image_name
-        port_1a_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_a_single_1a_availability_zone:
-        - get_input: availabilityzone_name
-        compute_a_single_1a_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_a_single_1a_user_data_format:
-        - RAW
-        compute_a_single_1a_name:
-        - get_input:
-          - a_single_1a_names
-          - 0
-        port_1a_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_a_single_1a_1a_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: a_single_1a_network
-          relationship: tosca.relationships.network.LinksTo
-    nestedNoUnified:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
-      directives:
-      - substitutable
-      properties:
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml
-        server_group: BE_Affinity_group
-        pcm_image_name:
-          get_input: pcm_image_name
-        security_group_name: jsa_security_group
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-      requirements:
-      - link_pcm_port_2:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    nested_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    jsa_security_group:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name:
-          get_input: security_group_name
-        description: ems security group
-        rules:
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-      requirements:
-      - port:
-          capability: attachment_pcm_port_00
-          node: 4p_nested
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_01
-          node: 4p_nested
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_0
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_1
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_2
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_3
-          node: nestedNoUnified
-          relationship: org.openecomp.relationships.AttachesTo
-    abstract_b_single_1b_1:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b_1
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_1b_user_data_format:
-        - RAW
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1b_t1_port_network_role_tag: oam
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network
-        port_1b_t1_port_network:
-        - get_input: oam_net_name
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network
-          relationship: tosca.relationships.network.LinksTo
-    a_single_1a_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    1c2_catalog_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - b_single_1b_network
-      - 4p_nested
-      - 1c1_scalling_instance_network
-      - nodeGetAttIn_network
-      - dependsOn_network
-      - nestedNoUnified
-      - nested_network
-      - jsa_security_group
-      - a_single_1a_network
-      - 1c2_catalog_instance_network
-      - abstract_a_single_1a
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_1c1_scalling_instance
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-    BE_Affinity_group:
-      type: tosca.groups.Root
-      members:
-      - abstract_a_single_1a
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_1c1_scalling_instance
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-  outputs:
-    out2:
-      value:
-        get_attribute:
-        - abstract_1c2_catalog_instance_1
-        - 1c2_catalog_instance_1c2_t1_port_tenant_id
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_1c2_t1_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-            - get_attribute:
-              - abstract_1c2_catalog_instance_1
-              - 1c2_catalog_instance_instance_name
-    out3:
-      value:
-        get_attribute:
-        - abstract_1c1_scalling_instance
-        - 1c1_scalling_instance_instance_name
-        - get_attribute:
-          - abstract_1c1_scalling_instance
-          - 1c1_scalling_instance_instance_name
-          - get_attribute:
-            - abstract_1c1_scalling_instance
-            - 1c1_scalling_instance_1c1_t2_port_tenant_id
-            - get_attribute:
-              - abstract_1c1_scalling_instance
-              - 1c1_scalling_instance_1c1_t2_port_tenant_id
-    out4:
-      value:
-        get_attribute:
-        - abstract_b_single_1b
-        - b_single_1b_instance_name
-        - get_attribute:
-          - abstract_b_single_1b_1
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_1b_t1_port_tenant_id
-            - get_attribute:
-              - abstract_b_single_1b_1
-              - b_single_1b_1b_t1_port_tenant_id
-    out5:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_instance_name
-    out1:
-      value:
-        get_attribute:
-        - nestedNoUnified
-        - portId
-        - get_attribute:
-          - 4p_nested
-          - server_pcm_id
-    out6:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_1a_t1_port_tenant_id
-  policies:
-    BE_Affinity_policy:
-      type: org.openecomp.policies.placement.Colocate
-      properties:
-        name: def
-        affinity: host
-      targets:
-      - BE_Affinity_group
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+    ppds_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ppds_net_name\r
+      type: string\r
+    a_single_1a_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: a_single_1a_names\r
+      type: string\r
+    pcm_server_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_server_names\r
+      type: string\r
+    pcm_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_image_name\r
+      type: string\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: string\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      entry_schema:\r
+        type: string\r
+    1c2_catalog_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c2_catalog_instance_names\r
+      type: string\r
+    pcm_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_flavor_name\r
+      type: string\r
+    b_single_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: b_single_1b_names\r
+      type: string\r
+    1c1_scalling_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c1_scalling_instance_names\r
+      type: string\r
+    myIPs:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: myIPs\r
+      type: string\r
+    net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: net_name\r
+      type: string\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+  node_templates:\r
+    abstract_b_single_1b:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c1_scalling_instance:\r
+      type: org.openecomp.resource.abstract.nodes.1c1_scalling_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c1_scalling_instance_user_data_format:\r
+        - RAW2\r
+        - RAW1\r
+        port_1c1_t2_port_network_role_tag: ppds\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1c1_t1_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_1c1_scalling_instance_name:\r
+        - get_input:\r
+          - 1c1_scalling_instance_names\r
+          - 2\r
+        - get_input:\r
+          - 1c1_scalling_instance_names\r
+          - 1\r
+        port_1c1_t1_port_name:\r
+        - 1c1_t1_port_1\r
+        - 1c1_t1_port_0\r
+        port_1c1_t1_port_network:\r
+        - 1c1_scalling_instance_network\r
+        - 1c1_scalling_instance_network\r
+        port_1c1_t2_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        port_1c1_t2_port_network:\r
+        - get_input: ppds_net_name\r
+        - get_input: ppds_net_name\r
+        port_1c1_t1_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        port_1c1_t2_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_1c1_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c1_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c1_scalling_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        port_1c1_t2_port_name:\r
+        - 1c1_t2_port_1\r
+        - 1c1_t2_port_0\r
+        compute_1c1_scalling_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c1_scalling_instanceServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c1_scalling_instance_1c1_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c1_scalling_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    b_single_1b_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    4p_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pcm_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_pcm_port_00_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        server_group: BE_Affinity_group\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        port_pcm_port_00_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        security_group_name: jsa_security_group\r
+        port_pcm_port_01_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pcm_port_00_network_role_tag: cps\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml\r
+        port_pcm_port_01_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+        port_pcm_port_01_network_role_tag: oam\r
+      requirements:\r
+      - link_pcm_port_00:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_0:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c2_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c2_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c2_t2_port_network:\r
+        - 1c2_catalog_instance_network\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 1\r
+        port_1c2_t1_port_network:\r
+        - get_input: oam_net_name\r
+        port_1c2_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - RAW1\r
+        port_1c2_t1_port_network_role_tag: oam\r
+        port_1c2_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_1c2_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_1:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c2_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c2_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c2_t2_port_network:\r
+        - 1c2_catalog_instance_network\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 2\r
+        port_1c2_t1_port_network:\r
+        - get_input: oam_net_name\r
+        port_1c2_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_instance_name\r
+        port_1c2_t1_port_network_role_tag: oam\r
+        port_1c2_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_1c2_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    1c1_scalling_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    nodeGetAttIn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        dhcp_agent_ids:\r
+          get_attribute:\r
+          - abstract_1c2_catalog_instance_1\r
+          - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_1c2_catalog_instance_0\r
+              - 1c2_catalog_instance_instance_name\r
+              - get_attribute:\r
+                - abstract_1c2_catalog_instance_1\r
+                - 1c2_catalog_instance_instance_name\r
+        tenant_id:\r
+          get_attribute:\r
+          - abstract_1c1_scalling_instance\r
+          - 1c1_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_instance_name\r
+            - get_attribute:\r
+              - abstract_1c1_scalling_instance\r
+              - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+              - get_attribute:\r
+                - abstract_1c1_scalling_instance\r
+                - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+        admin_state_up:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_1a_t1_port_tenant_id\r
+        qos_policy:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_instance_name\r
+        network_name:\r
+          get_attribute:\r
+          - nestedNoUnified\r
+          - portId\r
+          - get_attribute:\r
+            - 4p_nested\r
+            - server_pcm_id\r
+        value_specs:\r
+          get_attribute:\r
+          - abstract_b_single_1b\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_1b\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+              - get_attribute:\r
+                - abstract_b_single_1b_1\r
+                - b_single_1b_1b_t1_port_tenant_id\r
+    dependsOn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: nestedNoUnified\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: 4p_nested\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c2_t1_port\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c2_t1_port\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c1_scalling_instance\r
+          node: abstract_1c1_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c1_scalling_instance_1c1_t2_port\r
+          node: abstract_1c1_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a_1a_t1_port\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+    abstract_a_single_1a:\r
+      type: org.openecomp.resource.abstract.nodes.a_single_1a\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_1a_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1a_t2_port_network_role_tag: ppds\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1a_t2_port_network:\r
+        - get_input: ppds_net_name\r
+        port_1a_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1a_t1_port_network:\r
+        - a_single_1a_network\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1a_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_a_single_1a_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_a_single_1a_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_a_single_1a_user_data_format:\r
+        - RAW\r
+        compute_a_single_1a_name:\r
+        - get_input:\r
+          - a_single_1a_names\r
+          - 0\r
+        port_1a_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_a_single_1a_1a_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: a_single_1a_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nestedNoUnified:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml\r
+        server_group: BE_Affinity_group\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        security_group_name: jsa_security_group\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+      requirements:\r
+      - link_pcm_port_2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_pcm_port_0:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nested_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    jsa_security_group:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules\r
+      properties:\r
+        name:\r
+          get_input: security_group_name\r
+        description: ems security group\r
+        rules:\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+      requirements:\r
+      - port:\r
+          capability: attachment_pcm_port_00\r
+          node: 4p_nested\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_01\r
+          node: 4p_nested\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_0\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_1\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_2\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_3\r
+          node: nestedNoUnified\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+    abstract_b_single_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1b_t1_port_network_role_tag: oam\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network\r
+        port_1b_t1_port_network:\r
+        - get_input: oam_net_name\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    a_single_1a_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    1c2_catalog_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - b_single_1b_network\r
+      - 4p_nested\r
+      - 1c1_scalling_instance_network\r
+      - nodeGetAttIn_network\r
+      - dependsOn_network\r
+      - nestedNoUnified\r
+      - nested_network\r
+      - jsa_security_group\r
+      - a_single_1a_network\r
+      - 1c2_catalog_instance_network\r
+      - abstract_a_single_1a\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_1c1_scalling_instance\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+    BE_Affinity_group:\r
+      type: tosca.groups.Root\r
+      members:\r
+      - abstract_a_single_1a\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_1c1_scalling_instance\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+  outputs:\r
+    out2:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c2_catalog_instance_1\r
+        - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_1c2_t1_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+            - get_attribute:\r
+              - abstract_1c2_catalog_instance_1\r
+              - 1c2_catalog_instance_instance_name\r
+    out3:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c1_scalling_instance\r
+        - 1c1_scalling_instance_instance_name\r
+        - get_attribute:\r
+          - abstract_1c1_scalling_instance\r
+          - 1c1_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - abstract_1c1_scalling_instance\r
+            - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_1c1_scalling_instance\r
+              - 1c1_scalling_instance_1c1_t2_port_tenant_id\r
+    out4:\r
+      value:\r
+        get_attribute:\r
+        - abstract_b_single_1b\r
+        - b_single_1b_instance_name\r
+        - get_attribute:\r
+          - abstract_b_single_1b_1\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_1b_t1_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_b_single_1b_1\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+    out5:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_instance_name\r
+    out1:\r
+      value:\r
+        get_attribute:\r
+        - nestedNoUnified\r
+        - portId\r
+        - get_attribute:\r
+          - 4p_nested\r
+          - server_pcm_id\r
+    out6:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_1a_t1_port_tenant_id\r
+  policies:\r
+    BE_Affinity_policy:\r
+      type: org.openecomp.policies.placement.Colocate\r
+      properties:\r
+        name: def\r
+        affinity: host\r
+      targets:\r
+      - BE_Affinity_group\r
\ No newline at end of file
index f8806cf..ffd36f1 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-    ppds_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ppds_net_name
-      type: string
-    a_single_1a_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: a_single_1a_names
-      type: string
-    a_single_2a_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: a_single_2a_names
-      type: string
-    2c2_catalog_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 2c2_catalog_instance_names
-      type: string
-    pcm_server_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_server_names
-      type: string
-    pcm_image_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_image_name
-      type: string
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: security_group_name
-      type: string
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      entry_schema:
-        type: string
-    1c2_catalog_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c2_catalog_instance_names
-      type: string
-    pcm_flavor_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pcm_flavor_name
-      type: string
-    b_single_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: b_single_1b_names
-      type: string
-    1c12_scalling_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c12_scalling_instance_names
-      type: string
-    b_single_2b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: b_single_2b_names
-      type: string
-    myIPs:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: myIPs
-      type: string
-    net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: net_name
-      type: string
-    1c11_scalling_instance_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: 1c11_scalling_instance_names
-      type: string
-    oam_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: oam_net_name
-      type: string
-  node_templates:
-    abstract_b_single_1b:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_1b_user_data_format:
-        - RAW
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1b_t1_port_value_specs:
-        - get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_1a_t1_port_tenant_id
-        port_1b_t1_port_network_role_tag: oam
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network_1
-        port_1b_t1_port_network:
-        - get_input: oam_net_name
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network_1
-          relationship: tosca.relationships.network.LinksTo
-    abstract_2c2_catalog_instance_0:
-      type: org.openecomp.resource.abstract.nodes.2c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_2c2_catalog_instance_user_data_format:
-        - get_attribute:
-          - abstract_1c2_catalog_instance_1
-          - 1c2_catalog_instance_instance_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_2c202_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c201_port_network_role_tag: oam
-        compute_2c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_2c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        compute_2c2_catalog_instance_name:
-        - get_input:
-          - 2c2_catalog_instance_names
-          - 1
-        port_2c202_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_2c202_port_network:
-        - 1c2_catalog_instance_network
-        port_1c201_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c201_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c201_port_network:
-        - get_input: oam_net_name
-        service_template_filter:
-          substitute_service_template: Nested_2c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_2c2_catalog_instance_2c202_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_2c2_catalog_instance_1:
-      type: org.openecomp.resource.abstract.nodes.2c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_2c2_catalog_instance_user_data_format:
-        - RAW1
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_2c202_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c201_port_network_role_tag: oam
-        compute_2c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_2c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        compute_2c2_catalog_instance_name:
-        - get_input:
-          - 2c2_catalog_instance_names
-          - 0
-        port_2c202_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_2c202_port_network:
-        - 1c2_catalog_instance_network
-        port_1c201_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c201_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1c201_port_network:
-        - get_input: oam_net_name
-        service_template_filter:
-          substitute_service_template: Nested_2c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_2c2_catalog_instance_2c202_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_0:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        compute_1c2_catalog_instance_personality:
-        - - UNSUPPORTED_RESOURCE_[1a_single_1A_1, instance_name]
-        port_2c202_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c201_port_network_role_tag: oam
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 1
-        port_2c202_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_2c202_port_network:
-        - 1c2_catalog_instance_network
-        port_1c201_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c201_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - RAW1
-        port_1c201_port_network:
-        - get_input: oam_net_name
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_2c202_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c2_catalog_instance_1:
-      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c2_catalog_instance_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_2c202_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c201_port_network_role_tag: oam
-        compute_1c2_catalog_instance_name:
-        - get_input:
-          - 1c2_catalog_instance_names
-          - 2
-        port_2c202_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_2c202_port_network:
-        - 1c2_catalog_instance_network
-        port_1c201_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1c201_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_1c2_catalog_instance_user_data_format:
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_instance_name
-        port_1c201_port_network:
-        - get_input: oam_net_name
-        compute_1c2_catalog_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        service_template_filter:
-          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c2_catalog_instance_2c202_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c2_catalog_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    nodeGetAttIn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        dhcp_agent_ids:
-          get_attribute:
-          - abstract_1c2_catalog_instance_1
-          - 1c2_catalog_instance_1c201_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_1c201_port_tenant_id
-            - get_attribute:
-              - abstract_1c2_catalog_instance_1
-              - 1c2_catalog_instance_instance_name
-              - get_attribute:
-                - abstract_2c2_catalog_instance_1
-                - 2c2_catalog_instance_instance_name
-        tenant_id:
-          get_attribute:
-          - abstract_1c11_scalling_instance
-          - 1c11_scalling_instance_instance_name
-          - get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_instance_name
-            - get_attribute:
-              - 1c1_t2_port_02
-              - tenant_id
-              - get_attribute:
-                - 1c1_t2_port_11
-                - tenant_id
-              - get_attribute:
-                - 1c1_t2_port_12
-                - tenant_id
-              - get_attribute:
-                - abstract_1c12_scalling_instance
-                - 1c12_scalling_instance_instance_name
-        admin_state_up:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_1a_t1_port_tenant_id
-        qos_policy:
-          get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_instance_name
-        network_name:
-          get_attribute:
-          - nestedNoUnified_1
-          - portId
-          - get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-        value_specs:
-          get_attribute:
-          - abstract_b_single_1b_1
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-            - get_attribute:
-              - abstract_b_single_1b_1
-              - b_single_1b_1b_t1_port_tenant_id
-              - get_attribute:
-                - abstract_b_single_1b
-                - b_single_1b_1b_t1_port_tenant_id
-    abstract_a_single_1a:
-      type: org.openecomp.resource.abstract.nodes.a_single_1a
-      directives:
-      - substitutable
-      properties:
-        compute_a_single_1a_metadata:
-        - connectivityTo4PNested_2:
-            get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-          connectivityTo1A:
-            get_attribute:
-            - abstract_a_single_2a
-            - a_single_2a_instance_name
-          connectivityTo1B02:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-            - get_attribute:
-              - abstract_b_single_1b_1
-              - b_single_1b_instance_name
-          connectivityTo1B01:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-          connectivityTo1C1_T2_01:
-            get_attribute:
-            - 1c1_t2_port_01
-            - tenant_id
-          connectivityTo1C1_T2_12:
-            get_attribute:
-            - 1c1_t2_port_12
-            - tenant_id
-          connectivityTo4PNested_1:
-            get_attribute:
-            - 4p_nested_1
-            - server_pcm_id
-          connectivityTo1C1_T2_02:
-            get_attribute:
-            - 1c1_t2_port_02
-            - tenant_id
-          connectivityTo1C1_T2_11:
-            get_attribute:
-            - 1c1_t2_port_11
-            - tenant_id
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - abstract_2c2_catalog_instance_0
-            - 2c2_catalog_instance_instance_name
-          connectivityToNoUnifiedNested_2:
-            get_attribute:
-            - nestedNoUnified_2
-            - portId
-          connectivityToNoUnifiedNested_1:
-            get_attribute:
-            - nestedNoUnified_1
-            - portId
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - abstract_2c2_catalog_instance_1
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-        port_1a_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_1a_t2_port_network_role_tag: ppds
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1a_t2_port_network:
-        - get_input: ppds_net_name
-        port_1a_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1a_t1_port_network:
-        - a_single_1a_network
-        vm_image_name:
-          get_input: pd_image_name
-        port_1a_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_a_single_1a_availability_zone:
-        - get_input: availabilityzone_name
-        compute_a_single_1a_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_a_single_1a_user_data_format:
-        - RAW
-        compute_a_single_1a_name:
-        - get_input:
-          - a_single_1a_names
-          - 0
-        port_1a_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_a_single_1a_1a_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: a_single_1a_network
-          relationship: tosca.relationships.network.LinksTo
-    nestedNoUnified_1:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
-      directives:
-      - substitutable
-      properties:
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml
-        server_group: BE_Affinity_group
-        connectivityChk:
-          connectivityTo4PNested_2:
-            get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-          connectivityTo1C1_T1_02:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_11:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo4PNested_1:
-            get_attribute:
-            - 4p_nested_1
-            - server_pcm_id
-          connectivityTo1C1_T1_01:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_12:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1B01_1:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-          connectivityTo1B02_1:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-          connectivityTo1B01_2:
-            get_attribute:
-            - abstract_b_single_2b_1
-            - b_single_2b_instance_name
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - abstract_2c2_catalog_instance_0
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1A_2:
-            get_attribute:
-            - abstract_a_single_2a
-            - a_single_2a_instance_name
-          connectivityTo1B02_2:
-            get_attribute:
-            - abstract_b_single_2b
-            - b_single_2b_instance_name
-          connectivityToNoUnifiedNested_2:
-            get_attribute:
-            - nestedNoUnified_2
-            - portId
-          connectivityTo1A_1:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - abstract_2c2_catalog_instance_1
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-        pcm_image_name:
-          get_input: pcm_image_name
-        security_group_name: jsa_security_group
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-      requirements:
-      - link_pcm_port_2:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    nestedNoUnified_2:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1
-      directives:
-      - substitutable
-      properties:
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml
-        server_group: BE_Affinity_group
-        connectivityChk:
-          connectivityTo4PNested_2:
-            get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-          connectivityTo1C1_T1_02:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_11:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo4PNested_1:
-            get_attribute:
-            - 4p_nested_1
-            - server_pcm_id
-          connectivityTo1C1_T1_01:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_12:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1B01_1:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-          connectivityTo1B02_1:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-          connectivityTo1B01_2:
-            get_attribute:
-            - abstract_b_single_2b_1
-            - b_single_2b_instance_name
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - abstract_2c2_catalog_instance_0
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1A_2:
-            get_attribute:
-            - abstract_a_single_2a
-            - a_single_2a_instance_name
-          connectivityTo1B02_2:
-            get_attribute:
-            - abstract_b_single_2b
-            - b_single_2b_instance_name
-          connectivityTo1A_1:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityToNoUnifiedNested_1:
-            get_attribute:
-            - nestedNoUnified_1
-            - portId
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - abstract_2c2_catalog_instance_1
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-        pcm_image_name:
-          get_input: pcm_image_name
-        security_group_name: jsa_security_group
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-      requirements:
-      - link_pcm_port_2:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_1c11_scalling_instance:
-      type: org.openecomp.resource.abstract.nodes.1c11_scalling_instance
-      directives:
-      - substitutable
-      properties:
-        port_1c1_t1_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        port_1c1_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        compute_1c11_scalling_instance_name:
-        - get_input:
-          - 1c11_scalling_instance_names
-          - 1
-        - get_input:
-          - 1c11_scalling_instance_names
-          - 2
-        compute_1c11_scalling_instance_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_1c11_scalling_instance_user_data_format:
-        - RAW1
-        - RAW1
-        port_1c1_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c1_t1_port_name:
-        - 1c1_t1_port_01
-        - 1c1_t1_port_02
-        compute_1c11_scalling_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        - group: BE_Affinity_group
-        port_1c1_t1_port_network:
-        - 1c1_scalling_instance_network
-        service_template_filter:
-          substitute_service_template: Nested_1c11_scalling_instanceServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c11_scalling_instance_1c1_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c1_scalling_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_b_single_2b_1:
-      type: org.openecomp.resource.abstract.nodes.b_single_2b_1
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        compute_b_single_2b_metadata:
-        - connectivityTo4PNested_2:
-            get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-          connectivityTo1C1_T1_02:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_11:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo4PNested_1:
-            get_attribute:
-            - 4p_nested_1
-            - server_pcm_id
-          connectivityTo1C1_T1_01:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_12:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1B01_1:
-            get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_instance_name
-          connectivityTo1B02_1:
-            get_attribute:
-            - abstract_b_single_1b
-            - b_single_1b_instance_name
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - abstract_2c2_catalog_instance_0
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1A_2:
-            get_attribute:
-            - abstract_a_single_2a
-            - a_single_2a_instance_name
-          connectivityToNoUnifiedNested_2:
-            get_attribute:
-            - nestedNoUnified_2
-            - portId
-          connectivityTo1A_1:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityToNoUnifiedNested_1:
-            get_attribute:
-            - nestedNoUnified_1
-            - portId
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - abstract_2c2_catalog_instance_1
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_2b_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_b_single_2b_availability_zone:
-        - get_input: availabilityzone_name
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_b_single_2b_name:
-        - get_input:
-          - b_single_2b_names
-          - 0
-        compute_b_single_2b_user_data_format:
-        - RAW
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network_2
-        service_template_filter:
-          substitute_service_template: Nested_b_single_2b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_2b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network_2
-          relationship: tosca.relationships.network.LinksTo
-    b_single_1b_network_1:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    b_single_1b_network_2:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    abstract_1c12_scalling_instance:
-      type: org.openecomp.resource.abstract.nodes.1c12_scalling_instance
-      directives:
-      - substitutable
-      properties:
-        compute_1c12_scalling_instance_scheduler_hints:
-        - group: BE_Affinity_group
-        - group: BE_Affinity_group
-        port_1c1_t1_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        compute_1c12_scalling_instance_name:
-        - get_input:
-          - 1c12_scalling_instance_names
-          - 1
-        - get_input:
-          - 1c12_scalling_instance_names
-          - 2
-        port_1c1_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        compute_1c12_scalling_instance_user_data_format:
-        - RAW1
-        - RAW1
-        port_1c1_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_1c1_t1_port_name:
-        - 1c1_t1_port_11
-        - 1c1_t1_port_12
-        compute_1c12_scalling_instance_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        port_1c1_t1_port_network:
-        - 1c1_scalling_instance_network
-        service_template_filter:
-          substitute_service_template: Nested_1c12_scalling_instanceServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_1c12_scalling_instance_1c1_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: 1c1_scalling_instance_network
-          relationship: tosca.relationships.network.LinksTo
-    jsa_security_group:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name:
-          get_input: security_group_name
-        description: ems security group
-        rules:
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: egress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-        - protocol: tcp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: udp
-          ethertype: IPv6
-          port_range_max: 65535
-          remote_ip_prefix: ::/0
-          direction: ingress
-          port_range_min: 1
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-      requirements:
-      - port:
-          capability: attachment_pcm_port_00
-          node: 4p_nested_1
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_01
-          node: 4p_nested_1
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_00
-          node: 4p_nested_2
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_01
-          node: 4p_nested_2
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_0
-          node: nestedNoUnified_1
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_1
-          node: nestedNoUnified_1
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_2
-          node: nestedNoUnified_1
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_3
-          node: nestedNoUnified_1
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_0
-          node: nestedNoUnified_2
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_1
-          node: nestedNoUnified_2
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_2
-          node: nestedNoUnified_2
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_3
-          node: nestedNoUnified_2
-          relationship: org.openecomp.relationships.AttachesTo
-    a_single_1a_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    1c2_catalog_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    abstract_a_single_2a:
-      type: org.openecomp.resource.abstract.nodes.a_single_2a
-      directives:
-      - substitutable
-      properties:
-        compute_a_single_2a_user_data_format:
-        - RAW
-        port_1a_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_a_single_2a_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_a_single_2a_availability_zone:
-        - get_input: availabilityzone_name
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1a_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1a_t1_port_network:
-        - a_single_1a_network
-        compute_a_single_2a_name:
-        - get_input:
-          - a_single_2a_names
-          - 0
-        vm_image_name:
-          get_input: pd_image_name
-        compute_a_single_2a_metadata:
-        - connectivityTo4PNested_2:
-            get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-          connectivityTo1A:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityTo1B02:
-            get_attribute:
-            - abstract_b_single_2b
-            - b_single_2b_instance_name
-            - get_attribute:
-              - abstract_b_single_2b_1
-              - b_single_2b_instance_name
-          connectivityTo1B01:
-            get_attribute:
-            - abstract_b_single_2b_1
-            - b_single_2b_instance_name
-          connectivityTo1C1_T2_01:
-            get_attribute:
-            - 1c1_t2_port_01
-            - tenant_id
-          connectivityTo1C1_T2_12:
-            get_attribute:
-            - 1c1_t2_port_12
-            - tenant_id
-          connectivityTo4PNested_1:
-            get_attribute:
-            - 4p_nested_1
-            - server_pcm_id
-          connectivityTo1C1_T2_02:
-            get_attribute:
-            - 1c1_t2_port_02
-            - tenant_id
-          connectivityTo1C1_T2_11:
-            get_attribute:
-            - 1c1_t2_port_11
-            - tenant_id
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - abstract_2c2_catalog_instance_0
-            - 2c2_catalog_instance_instance_name
-          connectivityToNoUnifiedNested_2:
-            get_attribute:
-            - nestedNoUnified_2
-            - portId
-          connectivityToNoUnifiedNested_1:
-            get_attribute:
-            - nestedNoUnified_1
-            - portId
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - abstract_2c2_catalog_instance_1
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-        service_template_filter:
-          substitute_service_template: Nested_a_single_2aServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_a_single_2a_1a_t1_port:
-          capability: tosca.capabilities.network.Linkable
-          node: a_single_1a_network
-          relationship: tosca.relationships.network.LinksTo
-    1c1_t2_port_02:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name: 1c1_t2_port_02
-        network_role_tag: ppds
-        network:
-          get_input: ppds_net_name
-    1c1_t2_port_01:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name: 1c1_t2_port_01
-        network_role_tag: ppds
-        network:
-          get_input: ppds_net_name
-    1c1_scalling_instance_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    abstract_b_single_2b:
-      type: org.openecomp.resource.abstract.nodes.b_single_2b
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_2b_scheduler_hints:
-        - group: BE_Affinity_group
-        compute_b_single_2b_availability_zone:
-        - get_input: availabilityzone_name
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_b_single_2b_name:
-        - get_input:
-          - b_single_2b_names
-          - 1
-        port_1b_t1_port_value_specs:
-        - get_attribute:
-          - abstract_a_single_1a
-          - a_single_1a_1a_t1_port_tenant_id
-        compute_b_single_2b_user_data_format:
-        - RAW
-        port_1b_t1_port_network_role_tag: oam
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network_2
-        port_1b_t1_port_network:
-        - get_input: oam_net_name
-        service_template_filter:
-          substitute_service_template: Nested_b_single_2bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_2b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network_2
-          relationship: tosca.relationships.network.LinksTo
-    dependsOn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: nestedNoUnified_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: nestedNoUnified_2
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: 4p_nested_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: 4p_nested_2
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c201_port
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance_1c201_port
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_2c2_catalog_instance
-          node: abstract_2c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c2_catalog_instance
-          node: abstract_1c2_catalog_instance_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_2c2_catalog_instance
-          node: abstract_2c2_catalog_instance_0
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c11_scalling_instance
-          node: abstract_1c11_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_1c12_scalling_instance
-          node: abstract_1c12_scalling_instance
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: 1c1_t2_port_02
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: 1c1_t2_port_12
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b_1
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_b_single_1b_1b_t1_port
-          node: abstract_b_single_1b
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_2a
-          node: abstract_a_single_2a
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_a_single_1a_1a_t1_port
-          node: abstract_a_single_1a
-          relationship: tosca.relationships.DependsOn
-    4p_nested_2:
-      type: org.openecomp.resource.abstract.nodes.heat.pcm_server
-      directives:
-      - substitutable
-      properties:
-        port_pcm_port_00_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        server_group: BE_Affinity_group
-        connectivityChk:
-          connectivityTo1C1_T1_02:
-            get_attribute:
-            - 1c1_t1_port_02
-            - tenant_id
-          connectivityTo1C1_T1_11:
-            get_attribute:
-            - 1c1_t1_port_11
-            - tenant_id
-          connectivityTo4PNested_1:
-            get_attribute:
-            - 4p_nested_1
-            - server_pcm_id
-          connectivityTo1C1_T1_01:
-            get_attribute:
-            - 1c1_t1_port_01
-            - tenant_id
-          connectivityTo1C1_T1_12:
-            get_attribute:
-            - 1c1_t1_port_12
-            - tenant_id
-          connectivityTo1B01_1:
-            get_attribute:
-            - 1b01_single_1B_1
-            - instance_name
-          connectivityTo1B02_1:
-            get_attribute:
-            - 1b02_single_1B_1
-            - instance_name
-          connectivityTo1B01_2:
-            get_attribute:
-            - 1b01_single_1B_2
-            - instance_name
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - 2c202_catalog_instance_1C22
-            - instance_name
-          connectivityTo1A_2:
-            get_attribute:
-            - 2a_single_1A_2
-            - instance_name
-          connectivityTo1B02_2:
-            get_attribute:
-            - 1b02_single_1B_2
-            - instance_name
-          connectivityToNoUnifiedNested_2:
-            get_attribute:
-            - nestedNoUnified_2
-            - portId
-          connectivityTo1A_1:
-            get_attribute:
-            - 1a_single_1A_1
-            - instance_name
-          connectivityToNoUnifiedNested_1:
-            get_attribute:
-            - nestedNoUnified_1
-            - portId
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - 1c201_catalog_instance_1C21
-            - instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - 2c202_catalog_instance_1C21
-            - instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - 1c201_catalog_instance_1C22
-            - instance_name
-        pcm_image_name:
-          get_input: pcm_image_name
-        port_pcm_port_00_mac_requirements:
-          mac_count_required:
-            is_required: false
-        security_group_name: jsa_security_group
-        port_pcm_port_01_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pcm_port_00_network_role_tag: cps
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
-        port_pcm_port_01_mac_requirements:
-          mac_count_required:
-            is_required: false
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-        port_pcm_port_01_network_role_tag: oam
-      requirements:
-      - link_pcm_port_00:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    1c1_t2_port_12:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name: 1c1_t2_port_12
-        network_role_tag: ppds
-        network:
-          get_input: ppds_net_name
-    4p_nested_1:
-      type: org.openecomp.resource.abstract.nodes.heat.pcm_server
-      directives:
-      - substitutable
-      properties:
-        port_pcm_port_00_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        server_group: BE_Affinity_group
-        connectivityChk:
-          connectivityTo4PNested_2:
-            get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-          connectivityTo1C1_T1_02:
-            get_attribute:
-            - 1c1_t1_port_02
-            - tenant_id
-          connectivityTo1C1_T1_11:
-            get_attribute:
-            - 1c1_t1_port_11
-            - tenant_id
-          connectivityTo1C1_T1_01:
-            get_attribute:
-            - 1c1_t1_port_01
-            - tenant_id
-          connectivityTo1C1_T1_12:
-            get_attribute:
-            - 1c1_t1_port_12
-            - tenant_id
-          connectivityTo1B01_1:
-            get_attribute:
-            - 1b01_single_1B_1
-            - instance_name
-          connectivityTo1B02_1:
-            get_attribute:
-            - 1b02_single_1B_1
-            - instance_name
-          connectivityTo1B01_2:
-            get_attribute:
-            - 1b01_single_1B_2
-            - instance_name
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - 2c202_catalog_instance_1C22
-            - instance_name
-          connectivityTo1A_2:
-            get_attribute:
-            - 2a_single_1A_2
-            - instance_name
-          connectivityTo1B02_2:
-            get_attribute:
-            - 1b02_single_1B_2
-            - instance_name
-          connectivityToNoUnifiedNested_2:
-            get_attribute:
-            - nestedNoUnified_2
-            - portId
-          connectivityTo1A_1:
-            get_attribute:
-            - 1a_single_1A_1
-            - instance_name
-          connectivityToNoUnifiedNested_1:
-            get_attribute:
-            - nestedNoUnified_1
-            - portId
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - 1c201_catalog_instance_1C21
-            - instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - 2c202_catalog_instance_1C21
-            - instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - 1c201_catalog_instance_1C22
-            - instance_name
-        pcm_image_name:
-          get_input: pcm_image_name
-        port_pcm_port_00_mac_requirements:
-          mac_count_required:
-            is_required: false
-        security_group_name: jsa_security_group
-        port_pcm_port_01_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pcm_port_00_network_role_tag: cps
-        pcm_flavor_name:
-          get_input: pcm_flavor_name
-        service_template_filter:
-          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
-        port_pcm_port_01_mac_requirements:
-          mac_count_required:
-            is_required: false
-        pcm_server_name:
-          get_input:
-          - pcm_server_names
-          - 0
-        cps_net_name: nested_network
-        port_pcm_port_01_network_role_tag: oam
-      requirements:
-      - link_pcm_port_00:
-          capability: tosca.capabilities.network.Linkable
-          node: nested_network
-          relationship: tosca.relationships.network.LinksTo
-    1c1_t2_port_11:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - myIPs
-            - 1
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        name: 1c1_t2_port_11
-        network_role_tag: ppds
-        network:
-          get_input: ppds_net_name
-    nested_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: net_name
-    abstract_b_single_1b_1:
-      type: org.openecomp.resource.abstract.nodes.b_single_1b_1
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_1b_t1_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        compute_b_single_1b_user_data_format:
-        - RAW
-        port_1b_t2_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_b_single_1b_availability_zone:
-        - get_input: availabilityzone_name
-        compute_b_single_1b_scheduler_hints:
-        - group: BE_Affinity_group
-        port_1b_t2_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        compute_b_single_1b_metadata:
-        - connectivityTo4PNested_2:
-            get_attribute:
-            - 4p_nested_2
-            - server_pcm_id
-          connectivityTo1C1_T1_02:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_11:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo4PNested_1:
-            get_attribute:
-            - 4p_nested_1
-            - server_pcm_id
-          connectivityTo1C1_T1_01:
-            get_attribute:
-            - abstract_1c11_scalling_instance
-            - 1c11_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1C1_T1_12:
-            get_attribute:
-            - abstract_1c12_scalling_instance
-            - 1c12_scalling_instance_1c1_t1_port_tenant_id
-          connectivityTo1B01_2:
-            get_attribute:
-            - abstract_b_single_2b_1
-            - b_single_2b_instance_name
-          connectivityTo1C2_2_2:
-            get_attribute:
-            - abstract_2c2_catalog_instance_0
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1A_2:
-            get_attribute:
-            - abstract_a_single_2a
-            - a_single_2a_instance_name
-          connectivityTo1B02_2:
-            get_attribute:
-            - abstract_b_single_2b
-            - b_single_2b_instance_name
-          connectivityToNoUnifiedNested_2:
-            get_attribute:
-            - nestedNoUnified_2
-            - portId
-          connectivityTo1A_1:
-            get_attribute:
-            - abstract_a_single_1a
-            - a_single_1a_instance_name
-          connectivityToNoUnifiedNested_1:
-            get_attribute:
-            - nestedNoUnified_1
-            - portId
-          connectivityTo1C2_1_1:
-            get_attribute:
-            - abstract_1c2_catalog_instance_0
-            - 1c2_catalog_instance_instance_name
-          connectivityTo1C2_2_1:
-            get_attribute:
-            - abstract_2c2_catalog_instance_1
-            - 2c2_catalog_instance_instance_name
-          connectivityTo1C2_1_2:
-            get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-        port_1b_t1_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_1b_t2_port_network:
-        - b_single_1b_network_1
-        compute_b_single_1b_name:
-        - get_input:
-          - b_single_1b_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_b_single_1b_1b_t2_port:
-          capability: tosca.capabilities.network.Linkable
-          node: b_single_1b_network_1
-          relationship: tosca.relationships.network.LinksTo
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - nodeGetAttIn_network
-      - nestedNoUnified_1
-      - nestedNoUnified_2
-      - b_single_1b_network_1
-      - b_single_1b_network_2
-      - jsa_security_group
-      - a_single_1a_network
-      - 1c2_catalog_instance_network
-      - 1c1_t2_port_02
-      - 1c1_t2_port_01
-      - 1c1_scalling_instance_network
-      - dependsOn_network
-      - 4p_nested_2
-      - 1c1_t2_port_12
-      - 4p_nested_1
-      - 1c1_t2_port_11
-      - nested_network
-      - abstract_a_single_2a
-      - abstract_a_single_1a
-      - abstract_1c11_scalling_instance
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_b_single_2b
-      - abstract_b_single_2b_1
-      - abstract_1c12_scalling_instance
-      - abstract_2c2_catalog_instance_0
-      - abstract_2c2_catalog_instance_1
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-    BE_Affinity_group:
-      type: tosca.groups.Root
-      members:
-      - abstract_a_single_2a
-      - abstract_a_single_1a
-      - abstract_1c11_scalling_instance
-      - abstract_b_single_1b
-      - abstract_b_single_1b_1
-      - abstract_b_single_2b
-      - abstract_b_single_2b_1
-      - abstract_1c12_scalling_instance
-      - abstract_2c2_catalog_instance_0
-      - abstract_2c2_catalog_instance_1
-      - abstract_1c2_catalog_instance_0
-      - abstract_1c2_catalog_instance_1
-  outputs:
-    out2:
-      value:
-        get_attribute:
-        - abstract_1c2_catalog_instance_1
-        - 1c2_catalog_instance_1c201_port_tenant_id
-        - get_attribute:
-          - abstract_1c2_catalog_instance_0
-          - 1c2_catalog_instance_1c201_port_tenant_id
-          - get_attribute:
-            - abstract_1c2_catalog_instance_1
-            - 1c2_catalog_instance_instance_name
-            - get_attribute:
-              - abstract_2c2_catalog_instance_1
-              - 2c2_catalog_instance_instance_name
-    out3:
-      value:
-        get_attribute:
-        - abstract_1c11_scalling_instance
-        - 1c11_scalling_instance_instance_name
-        - get_attribute:
-          - abstract_1c11_scalling_instance
-          - 1c11_scalling_instance_instance_name
-          - get_attribute:
-            - 1c1_t2_port_02
-            - tenant_id
-            - get_attribute:
-              - 1c1_t2_port_11
-              - tenant_id
-            - get_attribute:
-              - 1c1_t2_port_12
-              - tenant_id
-            - get_attribute:
-              - abstract_1c12_scalling_instance
-              - 1c12_scalling_instance_instance_name
-    out4:
-      value:
-        get_attribute:
-        - abstract_b_single_1b_1
-        - b_single_1b_instance_name
-        - get_attribute:
-          - abstract_b_single_1b
-          - b_single_1b_instance_name
-          - get_attribute:
-            - abstract_b_single_1b_1
-            - b_single_1b_1b_t1_port_tenant_id
-            - get_attribute:
-              - abstract_b_single_1b
-              - b_single_1b_1b_t1_port_tenant_id
-    out5:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_instance_name
-    out1:
-      value:
-        get_attribute:
-        - nestedNoUnified_1
-        - portId
-        - get_attribute:
-          - 4p_nested_2
-          - server_pcm_id
-    out6:
-      value:
-        get_attribute:
-        - abstract_a_single_1a
-        - a_single_1a_1a_t1_port_tenant_id
-    out7:
-      value:
-        get_attribute:
-        - abstract_a_single_2a
-        - a_single_2a_instance_name
-  policies:
-    BE_Affinity_policy:
-      type: org.openecomp.policies.placement.Colocate
-      properties:
-        name: def
-        affinity: host
-      targets:
-      - BE_Affinity_group
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+    ppds_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ppds_net_name\r
+      type: string\r
+    a_single_1a_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: a_single_1a_names\r
+      type: string\r
+    a_single_2a_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: a_single_2a_names\r
+      type: string\r
+    2c2_catalog_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 2c2_catalog_instance_names\r
+      type: string\r
+    pcm_server_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_server_names\r
+      type: string\r
+    pcm_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_image_name\r
+      type: string\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: string\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      entry_schema:\r
+        type: string\r
+    1c2_catalog_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c2_catalog_instance_names\r
+      type: string\r
+    pcm_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pcm_flavor_name\r
+      type: string\r
+    b_single_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: b_single_1b_names\r
+      type: string\r
+    1c12_scalling_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c12_scalling_instance_names\r
+      type: string\r
+    b_single_2b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: b_single_2b_names\r
+      type: string\r
+    myIPs:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: myIPs\r
+      type: string\r
+    net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: net_name\r
+      type: string\r
+    1c11_scalling_instance_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: 1c11_scalling_instance_names\r
+      type: string\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+  node_templates:\r
+    abstract_b_single_1b:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1b_t1_port_value_specs:\r
+        - get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_1a_t1_port_tenant_id\r
+        port_1b_t1_port_network_role_tag: oam\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network_1\r
+        port_1b_t1_port_network:\r
+        - get_input: oam_net_name\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network_1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_2c2_catalog_instance_0:\r
+      type: org.openecomp.resource.abstract.nodes.2c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_2c2_catalog_instance_user_data_format:\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_1\r
+          - 1c2_catalog_instance_instance_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_2c202_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c201_port_network_role_tag: oam\r
+        compute_2c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_2c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_2c2_catalog_instance_name:\r
+        - get_input:\r
+          - 2c2_catalog_instance_names\r
+          - 1\r
+        port_2c202_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_2c202_port_network:\r
+        - 1c2_catalog_instance_network\r
+        port_1c201_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c201_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c201_port_network:\r
+        - get_input: oam_net_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_2c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_2c2_catalog_instance_2c202_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_2c2_catalog_instance_1:\r
+      type: org.openecomp.resource.abstract.nodes.2c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_2c2_catalog_instance_user_data_format:\r
+        - RAW1\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_2c202_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c201_port_network_role_tag: oam\r
+        compute_2c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_2c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_2c2_catalog_instance_name:\r
+        - get_input:\r
+          - 2c2_catalog_instance_names\r
+          - 0\r
+        port_2c202_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_2c202_port_network:\r
+        - 1c2_catalog_instance_network\r
+        port_1c201_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c201_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1c201_port_network:\r
+        - get_input: oam_net_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_2c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_2c2_catalog_instance_2c202_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_0:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        compute_1c2_catalog_instance_personality:\r
+        - - UNSUPPORTED_RESOURCE_[1a_single_1A_1, instance_name]\r
+        port_2c202_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c201_port_network_role_tag: oam\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 1\r
+        port_2c202_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_2c202_port_network:\r
+        - 1c2_catalog_instance_network\r
+        port_1c201_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c201_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - RAW1\r
+        port_1c201_port_network:\r
+        - get_input: oam_net_name\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_2c202_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c2_catalog_instance_1:\r
+      type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c2_catalog_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_2c202_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c201_port_network_role_tag: oam\r
+        compute_1c2_catalog_instance_name:\r
+        - get_input:\r
+          - 1c2_catalog_instance_names\r
+          - 2\r
+        port_2c202_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_2c202_port_network:\r
+        - 1c2_catalog_instance_network\r
+        port_1c201_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1c201_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_1c2_catalog_instance_user_data_format:\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_instance_name\r
+        port_1c201_port_network:\r
+        - get_input: oam_net_name\r
+        compute_1c2_catalog_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c2_catalog_instanceServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c2_catalog_instance_2c202_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c2_catalog_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nodeGetAttIn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        dhcp_agent_ids:\r
+          get_attribute:\r
+          - abstract_1c2_catalog_instance_1\r
+          - 1c2_catalog_instance_1c201_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_1c201_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_1c2_catalog_instance_1\r
+              - 1c2_catalog_instance_instance_name\r
+              - get_attribute:\r
+                - abstract_2c2_catalog_instance_1\r
+                - 2c2_catalog_instance_instance_name\r
+        tenant_id:\r
+          get_attribute:\r
+          - abstract_1c11_scalling_instance\r
+          - 1c11_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_instance_name\r
+            - get_attribute:\r
+              - 1c1_t2_port_02\r
+              - tenant_id\r
+              - get_attribute:\r
+                - 1c1_t2_port_11\r
+                - tenant_id\r
+              - get_attribute:\r
+                - 1c1_t2_port_12\r
+                - tenant_id\r
+              - get_attribute:\r
+                - abstract_1c12_scalling_instance\r
+                - 1c12_scalling_instance_instance_name\r
+        admin_state_up:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_1a_t1_port_tenant_id\r
+        qos_policy:\r
+          get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_instance_name\r
+        network_name:\r
+          get_attribute:\r
+          - nestedNoUnified_1\r
+          - portId\r
+          - get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+        value_specs:\r
+          get_attribute:\r
+          - abstract_b_single_1b_1\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_1b_1\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+              - get_attribute:\r
+                - abstract_b_single_1b\r
+                - b_single_1b_1b_t1_port_tenant_id\r
+    abstract_a_single_1a:\r
+      type: org.openecomp.resource.abstract.nodes.a_single_1a\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_a_single_1a_metadata:\r
+        - connectivityTo4PNested_2:\r
+            get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+          connectivityTo1A:\r
+            get_attribute:\r
+            - abstract_a_single_2a\r
+            - a_single_2a_instance_name\r
+          connectivityTo1B02:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_1b_1\r
+              - b_single_1b_instance_name\r
+          connectivityTo1B01:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+          connectivityTo1C1_T2_01:\r
+            get_attribute:\r
+            - 1c1_t2_port_01\r
+            - tenant_id\r
+          connectivityTo1C1_T2_12:\r
+            get_attribute:\r
+            - 1c1_t2_port_12\r
+            - tenant_id\r
+          connectivityTo4PNested_1:\r
+            get_attribute:\r
+            - 4p_nested_1\r
+            - server_pcm_id\r
+          connectivityTo1C1_T2_02:\r
+            get_attribute:\r
+            - 1c1_t2_port_02\r
+            - tenant_id\r
+          connectivityTo1C1_T2_11:\r
+            get_attribute:\r
+            - 1c1_t2_port_11\r
+            - tenant_id\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_0\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityToNoUnifiedNested_2:\r
+            get_attribute:\r
+            - nestedNoUnified_2\r
+            - portId\r
+          connectivityToNoUnifiedNested_1:\r
+            get_attribute:\r
+            - nestedNoUnified_1\r
+            - portId\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_1\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+        port_1a_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_1a_t2_port_network_role_tag: ppds\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1a_t2_port_network:\r
+        - get_input: ppds_net_name\r
+        port_1a_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1a_t1_port_network:\r
+        - a_single_1a_network\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1a_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_a_single_1a_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_a_single_1a_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_a_single_1a_user_data_format:\r
+        - RAW\r
+        compute_a_single_1a_name:\r
+        - get_input:\r
+          - a_single_1a_names\r
+          - 0\r
+        port_1a_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_a_single_1aServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_a_single_1a_1a_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: a_single_1a_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nestedNoUnified_1:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml\r
+        server_group: BE_Affinity_group\r
+        connectivityChk:\r
+          connectivityTo4PNested_2:\r
+            get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_02:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_11:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo4PNested_1:\r
+            get_attribute:\r
+            - 4p_nested_1\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_01:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_12:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1B01_1:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+          connectivityTo1B02_1:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+          connectivityTo1B01_2:\r
+            get_attribute:\r
+            - abstract_b_single_2b_1\r
+            - b_single_2b_instance_name\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_0\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1A_2:\r
+            get_attribute:\r
+            - abstract_a_single_2a\r
+            - a_single_2a_instance_name\r
+          connectivityTo1B02_2:\r
+            get_attribute:\r
+            - abstract_b_single_2b\r
+            - b_single_2b_instance_name\r
+          connectivityToNoUnifiedNested_2:\r
+            get_attribute:\r
+            - nestedNoUnified_2\r
+            - portId\r
+          connectivityTo1A_1:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_1\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        security_group_name: jsa_security_group\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+      requirements:\r
+      - link_pcm_port_2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_pcm_port_0:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nestedNoUnified_2:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no_vfc_v0.1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-no_vfc_v0.1ServiceTemplate.yaml\r
+        server_group: BE_Affinity_group\r
+        connectivityChk:\r
+          connectivityTo4PNested_2:\r
+            get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_02:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_11:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo4PNested_1:\r
+            get_attribute:\r
+            - 4p_nested_1\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_01:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_12:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1B01_1:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+          connectivityTo1B02_1:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+          connectivityTo1B01_2:\r
+            get_attribute:\r
+            - abstract_b_single_2b_1\r
+            - b_single_2b_instance_name\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_0\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1A_2:\r
+            get_attribute:\r
+            - abstract_a_single_2a\r
+            - a_single_2a_instance_name\r
+          connectivityTo1B02_2:\r
+            get_attribute:\r
+            - abstract_b_single_2b\r
+            - b_single_2b_instance_name\r
+          connectivityTo1A_1:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityToNoUnifiedNested_1:\r
+            get_attribute:\r
+            - nestedNoUnified_1\r
+            - portId\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_1\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        security_group_name: jsa_security_group\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+      requirements:\r
+      - link_pcm_port_2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_pcm_port_0:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_1c11_scalling_instance:\r
+      type: org.openecomp.resource.abstract.nodes.1c11_scalling_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_1c1_t1_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        port_1c1_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        compute_1c11_scalling_instance_name:\r
+        - get_input:\r
+          - 1c11_scalling_instance_names\r
+          - 1\r
+        - get_input:\r
+          - 1c11_scalling_instance_names\r
+          - 2\r
+        compute_1c11_scalling_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_1c11_scalling_instance_user_data_format:\r
+        - RAW1\r
+        - RAW1\r
+        port_1c1_t1_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c1_t1_port_name:\r
+        - 1c1_t1_port_01\r
+        - 1c1_t1_port_02\r
+        compute_1c11_scalling_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        - group: BE_Affinity_group\r
+        port_1c1_t1_port_network:\r
+        - 1c1_scalling_instance_network\r
+        - 1c1_scalling_instance_network\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c11_scalling_instanceServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c11_scalling_instance_1c1_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c1_scalling_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_b_single_2b_1:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_2b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        compute_b_single_2b_metadata:\r
+        - connectivityTo4PNested_2:\r
+            get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_02:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_11:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo4PNested_1:\r
+            get_attribute:\r
+            - 4p_nested_1\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_01:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_12:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1B01_1:\r
+            get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_instance_name\r
+          connectivityTo1B02_1:\r
+            get_attribute:\r
+            - abstract_b_single_1b\r
+            - b_single_1b_instance_name\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_0\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1A_2:\r
+            get_attribute:\r
+            - abstract_a_single_2a\r
+            - a_single_2a_instance_name\r
+          connectivityToNoUnifiedNested_2:\r
+            get_attribute:\r
+            - nestedNoUnified_2\r
+            - portId\r
+          connectivityTo1A_1:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityToNoUnifiedNested_1:\r
+            get_attribute:\r
+            - nestedNoUnified_1\r
+            - portId\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_1\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_2b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_b_single_2b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_b_single_2b_name:\r
+        - get_input:\r
+          - b_single_2b_names\r
+          - 0\r
+        compute_b_single_2b_user_data_format:\r
+        - RAW\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network_2\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_2b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_2b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network_2\r
+          relationship: tosca.relationships.network.LinksTo\r
+    b_single_1b_network_1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    b_single_1b_network_2:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    abstract_1c12_scalling_instance:\r
+      type: org.openecomp.resource.abstract.nodes.1c12_scalling_instance\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_1c12_scalling_instance_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        - group: BE_Affinity_group\r
+        port_1c1_t1_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        - - ip_address:\r
+              get_input:\r
+              - myIPs\r
+              - 1\r
+        compute_1c12_scalling_instance_name:\r
+        - get_input:\r
+          - 1c12_scalling_instance_names\r
+          - 1\r
+        - get_input:\r
+          - 1c12_scalling_instance_names\r
+          - 2\r
+        port_1c1_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        compute_1c12_scalling_instance_user_data_format:\r
+        - RAW1\r
+        - RAW1\r
+        port_1c1_t1_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_1c1_t1_port_name:\r
+        - 1c1_t1_port_11\r
+        - 1c1_t1_port_12\r
+        compute_1c12_scalling_instance_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        port_1c1_t1_port_network:\r
+        - 1c1_scalling_instance_network\r
+        - 1c1_scalling_instance_network\r
+        service_template_filter:\r
+          substitute_service_template: Nested_1c12_scalling_instanceServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_1c12_scalling_instance_1c1_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: 1c1_scalling_instance_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    jsa_security_group:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules\r
+      properties:\r
+        name:\r
+          get_input: security_group_name\r
+        description: ems security group\r
+        rules:\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          port_range_max: 65535\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          port_range_max: 65535\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+          port_range_min: 1\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+      requirements:\r
+      - port:\r
+          capability: attachment_pcm_port_00\r
+          node: 4p_nested_1\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_01\r
+          node: 4p_nested_1\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_00\r
+          node: 4p_nested_2\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_01\r
+          node: 4p_nested_2\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_0\r
+          node: nestedNoUnified_1\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_1\r
+          node: nestedNoUnified_1\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_2\r
+          node: nestedNoUnified_1\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_3\r
+          node: nestedNoUnified_1\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_0\r
+          node: nestedNoUnified_2\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_1\r
+          node: nestedNoUnified_2\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_2\r
+          node: nestedNoUnified_2\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+      - port:\r
+          capability: attachment_pcm_port_3\r
+          node: nestedNoUnified_2\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+    a_single_1a_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    1c2_catalog_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    abstract_a_single_2a:\r
+      type: org.openecomp.resource.abstract.nodes.a_single_2a\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_a_single_2a_user_data_format:\r
+        - RAW\r
+        port_1a_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_a_single_2a_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_a_single_2a_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1a_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1a_t1_port_network:\r
+        - a_single_1a_network\r
+        compute_a_single_2a_name:\r
+        - get_input:\r
+          - a_single_2a_names\r
+          - 0\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_a_single_2a_metadata:\r
+        - connectivityTo4PNested_2:\r
+            get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+          connectivityTo1A:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityTo1B02:\r
+            get_attribute:\r
+            - abstract_b_single_2b\r
+            - b_single_2b_instance_name\r
+            - get_attribute:\r
+              - abstract_b_single_2b_1\r
+              - b_single_2b_instance_name\r
+          connectivityTo1B01:\r
+            get_attribute:\r
+            - abstract_b_single_2b_1\r
+            - b_single_2b_instance_name\r
+          connectivityTo1C1_T2_01:\r
+            get_attribute:\r
+            - 1c1_t2_port_01\r
+            - tenant_id\r
+          connectivityTo1C1_T2_12:\r
+            get_attribute:\r
+            - 1c1_t2_port_12\r
+            - tenant_id\r
+          connectivityTo4PNested_1:\r
+            get_attribute:\r
+            - 4p_nested_1\r
+            - server_pcm_id\r
+          connectivityTo1C1_T2_02:\r
+            get_attribute:\r
+            - 1c1_t2_port_02\r
+            - tenant_id\r
+          connectivityTo1C1_T2_11:\r
+            get_attribute:\r
+            - 1c1_t2_port_11\r
+            - tenant_id\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_0\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityToNoUnifiedNested_2:\r
+            get_attribute:\r
+            - nestedNoUnified_2\r
+            - portId\r
+          connectivityToNoUnifiedNested_1:\r
+            get_attribute:\r
+            - nestedNoUnified_1\r
+            - portId\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_1\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_a_single_2aServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_a_single_2a_1a_t1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: a_single_1a_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    1c1_t2_port_02:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - myIPs\r
+            - 1\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name: 1c1_t2_port_02\r
+        network_role_tag: ppds\r
+        network:\r
+          get_input: ppds_net_name\r
+    1c1_t2_port_01:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - myIPs\r
+            - 1\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name: 1c1_t2_port_01\r
+        network_role_tag: ppds\r
+        network:\r
+          get_input: ppds_net_name\r
+    1c1_scalling_instance_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    abstract_b_single_2b:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_2b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_2b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        compute_b_single_2b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_b_single_2b_name:\r
+        - get_input:\r
+          - b_single_2b_names\r
+          - 1\r
+        port_1b_t1_port_value_specs:\r
+        - get_attribute:\r
+          - abstract_a_single_1a\r
+          - a_single_1a_1a_t1_port_tenant_id\r
+        compute_b_single_2b_user_data_format:\r
+        - RAW\r
+        port_1b_t1_port_network_role_tag: oam\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network_2\r
+        port_1b_t1_port_network:\r
+        - get_input: oam_net_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_2bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_2b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network_2\r
+          relationship: tosca.relationships.network.LinksTo\r
+    dependsOn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: nestedNoUnified_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: nestedNoUnified_2\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: 4p_nested_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: 4p_nested_2\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c201_port\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance_1c201_port\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_2c2_catalog_instance\r
+          node: abstract_2c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c2_catalog_instance\r
+          node: abstract_1c2_catalog_instance_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_2c2_catalog_instance\r
+          node: abstract_2c2_catalog_instance_0\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c11_scalling_instance\r
+          node: abstract_1c11_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_1c12_scalling_instance\r
+          node: abstract_1c12_scalling_instance\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: 1c1_t2_port_02\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: 1c1_t2_port_12\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b_1\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_b_single_1b_1b_t1_port\r
+          node: abstract_b_single_1b\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_2a\r
+          node: abstract_a_single_2a\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: feature_a_single_1a_1a_t1_port\r
+          node: abstract_a_single_1a\r
+          relationship: tosca.relationships.DependsOn\r
+    4p_nested_2:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pcm_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_pcm_port_00_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        server_group: BE_Affinity_group\r
+        connectivityChk:\r
+          connectivityTo1C1_T1_02:\r
+            get_attribute:\r
+            - 1c1_t1_port_02\r
+            - tenant_id\r
+          connectivityTo1C1_T1_11:\r
+            get_attribute:\r
+            - 1c1_t1_port_11\r
+            - tenant_id\r
+          connectivityTo4PNested_1:\r
+            get_attribute:\r
+            - 4p_nested_1\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_01:\r
+            get_attribute:\r
+            - 1c1_t1_port_01\r
+            - tenant_id\r
+          connectivityTo1C1_T1_12:\r
+            get_attribute:\r
+            - 1c1_t1_port_12\r
+            - tenant_id\r
+          connectivityTo1B01_1:\r
+            get_attribute:\r
+            - 1b01_single_1B_1\r
+            - instance_name\r
+          connectivityTo1B02_1:\r
+            get_attribute:\r
+            - 1b02_single_1B_1\r
+            - instance_name\r
+          connectivityTo1B01_2:\r
+            get_attribute:\r
+            - 1b01_single_1B_2\r
+            - instance_name\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - 2c202_catalog_instance_1C22\r
+            - instance_name\r
+          connectivityTo1A_2:\r
+            get_attribute:\r
+            - 2a_single_1A_2\r
+            - instance_name\r
+          connectivityTo1B02_2:\r
+            get_attribute:\r
+            - 1b02_single_1B_2\r
+            - instance_name\r
+          connectivityToNoUnifiedNested_2:\r
+            get_attribute:\r
+            - nestedNoUnified_2\r
+            - portId\r
+          connectivityTo1A_1:\r
+            get_attribute:\r
+            - 1a_single_1A_1\r
+            - instance_name\r
+          connectivityToNoUnifiedNested_1:\r
+            get_attribute:\r
+            - nestedNoUnified_1\r
+            - portId\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - 1c201_catalog_instance_1C21\r
+            - instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - 2c202_catalog_instance_1C21\r
+            - instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - 1c201_catalog_instance_1C22\r
+            - instance_name\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        port_pcm_port_00_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        security_group_name: jsa_security_group\r
+        port_pcm_port_01_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pcm_port_00_network_role_tag: cps\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml\r
+        port_pcm_port_01_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+        port_pcm_port_01_network_role_tag: oam\r
+      requirements:\r
+      - link_pcm_port_00:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    1c1_t2_port_12:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - myIPs\r
+            - 1\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name: 1c1_t2_port_12\r
+        network_role_tag: ppds\r
+        network:\r
+          get_input: ppds_net_name\r
+    4p_nested_1:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pcm_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_pcm_port_00_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        server_group: BE_Affinity_group\r
+        connectivityChk:\r
+          connectivityTo4PNested_2:\r
+            get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_02:\r
+            get_attribute:\r
+            - 1c1_t1_port_02\r
+            - tenant_id\r
+          connectivityTo1C1_T1_11:\r
+            get_attribute:\r
+            - 1c1_t1_port_11\r
+            - tenant_id\r
+          connectivityTo1C1_T1_01:\r
+            get_attribute:\r
+            - 1c1_t1_port_01\r
+            - tenant_id\r
+          connectivityTo1C1_T1_12:\r
+            get_attribute:\r
+            - 1c1_t1_port_12\r
+            - tenant_id\r
+          connectivityTo1B01_1:\r
+            get_attribute:\r
+            - 1b01_single_1B_1\r
+            - instance_name\r
+          connectivityTo1B02_1:\r
+            get_attribute:\r
+            - 1b02_single_1B_1\r
+            - instance_name\r
+          connectivityTo1B01_2:\r
+            get_attribute:\r
+            - 1b01_single_1B_2\r
+            - instance_name\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - 2c202_catalog_instance_1C22\r
+            - instance_name\r
+          connectivityTo1A_2:\r
+            get_attribute:\r
+            - 2a_single_1A_2\r
+            - instance_name\r
+          connectivityTo1B02_2:\r
+            get_attribute:\r
+            - 1b02_single_1B_2\r
+            - instance_name\r
+          connectivityToNoUnifiedNested_2:\r
+            get_attribute:\r
+            - nestedNoUnified_2\r
+            - portId\r
+          connectivityTo1A_1:\r
+            get_attribute:\r
+            - 1a_single_1A_1\r
+            - instance_name\r
+          connectivityToNoUnifiedNested_1:\r
+            get_attribute:\r
+            - nestedNoUnified_1\r
+            - portId\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - 1c201_catalog_instance_1C21\r
+            - instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - 2c202_catalog_instance_1C21\r
+            - instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - 1c201_catalog_instance_1C22\r
+            - instance_name\r
+        pcm_image_name:\r
+          get_input: pcm_image_name\r
+        port_pcm_port_00_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        security_group_name: jsa_security_group\r
+        port_pcm_port_01_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pcm_port_00_network_role_tag: cps\r
+        pcm_flavor_name:\r
+          get_input: pcm_flavor_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml\r
+        port_pcm_port_01_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        pcm_server_name:\r
+          get_input:\r
+          - pcm_server_names\r
+          - 0\r
+        cps_net_name: nested_network\r
+        port_pcm_port_01_network_role_tag: oam\r
+      requirements:\r
+      - link_pcm_port_00:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: nested_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    1c1_t2_port_11:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - myIPs\r
+            - 1\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name: 1c1_t2_port_11\r
+        network_role_tag: ppds\r
+        network:\r
+          get_input: ppds_net_name\r
+    nested_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: net_name\r
+    abstract_b_single_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.b_single_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_1b_t1_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        compute_b_single_1b_user_data_format:\r
+        - RAW\r
+        port_1b_t2_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        compute_b_single_1b_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        port_1b_t2_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_b_single_1b_metadata:\r
+        - connectivityTo4PNested_2:\r
+            get_attribute:\r
+            - 4p_nested_2\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_02:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_11:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo4PNested_1:\r
+            get_attribute:\r
+            - 4p_nested_1\r
+            - server_pcm_id\r
+          connectivityTo1C1_T1_01:\r
+            get_attribute:\r
+            - abstract_1c11_scalling_instance\r
+            - 1c11_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1C1_T1_12:\r
+            get_attribute:\r
+            - abstract_1c12_scalling_instance\r
+            - 1c12_scalling_instance_1c1_t1_port_tenant_id\r
+          connectivityTo1B01_2:\r
+            get_attribute:\r
+            - abstract_b_single_2b_1\r
+            - b_single_2b_instance_name\r
+          connectivityTo1C2_2_2:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_0\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1A_2:\r
+            get_attribute:\r
+            - abstract_a_single_2a\r
+            - a_single_2a_instance_name\r
+          connectivityTo1B02_2:\r
+            get_attribute:\r
+            - abstract_b_single_2b\r
+            - b_single_2b_instance_name\r
+          connectivityToNoUnifiedNested_2:\r
+            get_attribute:\r
+            - nestedNoUnified_2\r
+            - portId\r
+          connectivityTo1A_1:\r
+            get_attribute:\r
+            - abstract_a_single_1a\r
+            - a_single_1a_instance_name\r
+          connectivityToNoUnifiedNested_1:\r
+            get_attribute:\r
+            - nestedNoUnified_1\r
+            - portId\r
+          connectivityTo1C2_1_1:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_0\r
+            - 1c2_catalog_instance_instance_name\r
+          connectivityTo1C2_2_1:\r
+            get_attribute:\r
+            - abstract_2c2_catalog_instance_1\r
+            - 2c2_catalog_instance_instance_name\r
+          connectivityTo1C2_1_2:\r
+            get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+        port_1b_t1_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_1b_t2_port_network:\r
+        - b_single_1b_network_1\r
+        compute_b_single_1b_name:\r
+        - get_input:\r
+          - b_single_1b_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_b_single_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_b_single_1b_1b_t2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: b_single_1b_network_1\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - nodeGetAttIn_network\r
+      - nestedNoUnified_1\r
+      - nestedNoUnified_2\r
+      - b_single_1b_network_1\r
+      - b_single_1b_network_2\r
+      - jsa_security_group\r
+      - a_single_1a_network\r
+      - 1c2_catalog_instance_network\r
+      - 1c1_t2_port_02\r
+      - 1c1_t2_port_01\r
+      - 1c1_scalling_instance_network\r
+      - dependsOn_network\r
+      - 4p_nested_2\r
+      - 1c1_t2_port_12\r
+      - 4p_nested_1\r
+      - 1c1_t2_port_11\r
+      - nested_network\r
+      - abstract_a_single_2a\r
+      - abstract_a_single_1a\r
+      - abstract_1c11_scalling_instance\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_b_single_2b\r
+      - abstract_b_single_2b_1\r
+      - abstract_1c12_scalling_instance\r
+      - abstract_2c2_catalog_instance_0\r
+      - abstract_2c2_catalog_instance_1\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+    BE_Affinity_group:\r
+      type: tosca.groups.Root\r
+      members:\r
+      - abstract_a_single_2a\r
+      - abstract_a_single_1a\r
+      - abstract_1c11_scalling_instance\r
+      - abstract_b_single_1b\r
+      - abstract_b_single_1b_1\r
+      - abstract_b_single_2b\r
+      - abstract_b_single_2b_1\r
+      - abstract_1c12_scalling_instance\r
+      - abstract_2c2_catalog_instance_0\r
+      - abstract_2c2_catalog_instance_1\r
+      - abstract_1c2_catalog_instance_0\r
+      - abstract_1c2_catalog_instance_1\r
+  outputs:\r
+    out2:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c2_catalog_instance_1\r
+        - 1c2_catalog_instance_1c201_port_tenant_id\r
+        - get_attribute:\r
+          - abstract_1c2_catalog_instance_0\r
+          - 1c2_catalog_instance_1c201_port_tenant_id\r
+          - get_attribute:\r
+            - abstract_1c2_catalog_instance_1\r
+            - 1c2_catalog_instance_instance_name\r
+            - get_attribute:\r
+              - abstract_2c2_catalog_instance_1\r
+              - 2c2_catalog_instance_instance_name\r
+    out3:\r
+      value:\r
+        get_attribute:\r
+        - abstract_1c11_scalling_instance\r
+        - 1c11_scalling_instance_instance_name\r
+        - get_attribute:\r
+          - abstract_1c11_scalling_instance\r
+          - 1c11_scalling_instance_instance_name\r
+          - get_attribute:\r
+            - 1c1_t2_port_02\r
+            - tenant_id\r
+            - get_attribute:\r
+              - 1c1_t2_port_11\r
+              - tenant_id\r
+            - get_attribute:\r
+              - 1c1_t2_port_12\r
+              - tenant_id\r
+            - get_attribute:\r
+              - abstract_1c12_scalling_instance\r
+              - 1c12_scalling_instance_instance_name\r
+    out4:\r
+      value:\r
+        get_attribute:\r
+        - abstract_b_single_1b_1\r
+        - b_single_1b_instance_name\r
+        - get_attribute:\r
+          - abstract_b_single_1b\r
+          - b_single_1b_instance_name\r
+          - get_attribute:\r
+            - abstract_b_single_1b_1\r
+            - b_single_1b_1b_t1_port_tenant_id\r
+            - get_attribute:\r
+              - abstract_b_single_1b\r
+              - b_single_1b_1b_t1_port_tenant_id\r
+    out5:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_instance_name\r
+    out1:\r
+      value:\r
+        get_attribute:\r
+        - nestedNoUnified_1\r
+        - portId\r
+        - get_attribute:\r
+          - 4p_nested_2\r
+          - server_pcm_id\r
+    out6:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_1a\r
+        - a_single_1a_1a_t1_port_tenant_id\r
+    out7:\r
+      value:\r
+        get_attribute:\r
+        - abstract_a_single_2a\r
+        - a_single_2a_instance_name\r
+  policies:\r
+    BE_Affinity_policy:\r
+      type: org.openecomp.policies.placement.Colocate\r
+      properties:\r
+        name: def\r
+        affinity: host\r
+      targets:\r
+      - BE_Affinity_group\r
\ No newline at end of file
index 209135c..610b7dd 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    ps_server_main_1b_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: ps_server_main_1b_image
-      type: string
-      description: Ps Image server
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: security_group_name
-      type: string
-      description: security_group_name
-    cmaui_1c1_main_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_1c1_main_names
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    contrail_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: contrail_net_name
-      type: string
-      description: network name of contrail v2 network
-    ps_server_main_1b_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: ps_server_main_1b_flavor
-      type: string
-      description: Flavor for PS server
-    ps_server_main_1b_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: ps_server_main_1b_ips
-      type: string
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: network name of jsa network
-    jsa_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: jsa_name
-      type: string
-      description: network name of jsa log network
-    pd_server_main_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: pd_server_main_1b_names
-      type: list
-      description: PD server names
-      entry_schema:
-        type: string
-    cmaui_1c1_main_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_1c1_main_flavor
-      type: string
-      description: Flavor for CMAUI server
-    pd_server_main_1b_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: pd_server_main_1b_flavor
-      type: string
-      description: Flavor for PD server
-    cmaui_1c1_main_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_1c1_main_image
-      type: string
-      description: Image for CMAUI server
-    ps_server_main_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: ps_server_main_1b_names
-      type: list
-      description: Ps server names
-      entry_schema:
-        type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: availability_zone_0
-      type: string
-      description: availabilityzone name
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_oam_ips
-      type: string
-    pd_server_main_1b_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: pd_server_main_1b_image
-      type: string
-      description: PD Image server
-    pd_server_main_1b_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: pd_server_main_1b_ips
-      type: string
-  node_templates:
-    abstract_pd_server_main_1b_1:
-      type: org.openecomp.resource.abstract.nodes.pd_server_main_1b_1
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_main_1b_availability_zone:
-        - get_input: availability_zone_0
-        port_pd_server_main_1b_port_replacement_policy:
-        - AUTO
-        port_pd_server_main_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_flavor_name:
-          get_input: pd_server_main_1b_flavor
-        vm_image_name:
-          get_input: pd_server_main_1b_image
-        compute_pd_server_main_1b_name:
-        - get_input:
-          - pd_server_main_1b_names
-          - 0
-        port_pd_server_main_1b_port_network:
-        - get_input: jsa_name
-        port_pd_server_main_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_main_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - pd_server_main_1b_ips
-            - 0
-        service_template_filter:
-          substitute_service_template: Nested_pd_server_main_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_ps_server_main_1b_1:
-      type: org.openecomp.resource.abstract.nodes.ps_server_main_1b_1
-      directives:
-      - substitutable
-      properties:
-        port_ps_server_main_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - ps_server_main_1b_ips
-            - 0
-        port_ps_server_main_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_ps_server_main_1b_availability_zone:
-        - get_input: availability_zone_0
-        vm_flavor_name:
-          get_input: ps_server_main_1b_flavor
-        vm_image_name:
-          get_input: ps_server_main_1b_image
-        compute_ps_server_main_1b_name:
-        - get_input:
-          - ps_server_main_1b_names
-          - 1
-        port_ps_server_main_1b_port_replacement_policy:
-        - AUTO
-        port_ps_server_main_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps_server_main_1b_port_network:
-        - get_input: jsa_name
-        service_template_filter:
-          substitute_service_template: Nested_ps_server_main_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    test_nested1Level_duplicate_same_file:
-      type: org.openecomp.resource.abstract.nodes.heat.nested1
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested1ServiceTemplate.yaml
-        name:
-          get_input: security_group_name
-    test_nested_no_compute:
-      type: org.openecomp.resource.abstract.nodes.heat.nested1-no-compute
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested1-no-computeServiceTemplate.yaml
-        name:
-          get_input: jsa_net_name
-    abstract_cmaui_1c1_main_1:
-      type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main_1
-      directives:
-      - substitutable
-      properties:
-        port_cmaui_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        port_cmaui_port_network:
-        - get_input: contrail_net_name
-        port_cmaui_port_network_role_tag: contrail
-        vm_flavor_name:
-          get_input: cmaui_1c1_main_flavor
-        port_cmaui_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_cmaui_port_replacement_policy:
-        - AUTO
-        vm_image_name:
-          get_input: cmaui_1c1_main_image
-        port_cmaui_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_cmaui_1c1_main_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        compute_cmaui_1c1_main_name:
-        - get_input:
-          - cmaui_1c1_main_names
-          - 1
-        - get_input:
-          - cmaui_1c1_main_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_cmaui_1c1_main_1ServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    test_nested_pattern_4_main_0:
-      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
-      directives:
-      - substitutable
-      properties:
-        p1:
-          get_input: jsa_name
-        service_template_filter:
-          substitute_service_template: nested-pattern-4ServiceTemplate.yaml
-        port_pd_server_pattern4_port_01_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_02_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_02_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_01_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-    test_nested1Level:
-      type: org.openecomp.resource.abstract.nodes.heat.nested1
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested1ServiceTemplate.yaml
-        name:
-          get_input: security_group_name
-  groups:
-    main_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/main.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-      members:
-      - test_nested1Level
-      - test_nested1Level_duplicate_same_file
-      - test_nested_no_compute
-      - test_nested_pattern_4_main_0
-      - abstract_pd_server_main_1b_1
-      - abstract_ps_server_main_1b_1
-      - abstract_cmaui_1c1_main_1
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    ps_server_main_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: ps_server_main_1b_image\r
+      type: string\r
+      description: Ps Image server\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: string\r
+      description: security_group_name\r
+    cmaui_1c1_main_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_1c1_main_names\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    contrail_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: contrail_net_name\r
+      type: string\r
+      description: network name of contrail v2 network\r
+    ps_server_main_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: ps_server_main_1b_flavor\r
+      type: string\r
+      description: Flavor for PS server\r
+    ps_server_main_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: ps_server_main_1b_ips\r
+      type: string\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: jsa_net_name\r
+      type: string\r
+      description: network name of jsa network\r
+    jsa_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: jsa_name\r
+      type: string\r
+      description: network name of jsa log network\r
+    pd_server_main_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: pd_server_main_1b_names\r
+      type: list\r
+      description: PD server names\r
+      entry_schema:\r
+        type: string\r
+    cmaui_1c1_main_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_1c1_main_flavor\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    pd_server_main_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: pd_server_main_1b_flavor\r
+      type: string\r
+      description: Flavor for PD server\r
+    cmaui_1c1_main_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_1c1_main_image\r
+      type: string\r
+      description: Image for CMAUI server\r
+    ps_server_main_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: ps_server_main_1b_names\r
+      type: list\r
+      description: Ps server names\r
+      entry_schema:\r
+        type: string\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_0\r
+      type: string\r
+      description: availabilityzone name\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_oam_ips\r
+      type: string\r
+    pd_server_main_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: pd_server_main_1b_image\r
+      type: string\r
+      description: PD Image server\r
+    pd_server_main_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: pd_server_main_1b_ips\r
+      type: string\r
+  node_templates:\r
+    abstract_pd_server_main_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server_main_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_main_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_pd_server_main_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_pd_server_main_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_flavor_name:\r
+          get_input: pd_server_main_1b_flavor\r
+        vm_image_name:\r
+          get_input: pd_server_main_1b_image\r
+        compute_pd_server_main_1b_name:\r
+        - get_input:\r
+          - pd_server_main_1b_names\r
+          - 0\r
+        port_pd_server_main_1b_port_network:\r
+        - get_input: jsa_name\r
+        port_pd_server_main_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_main_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - pd_server_main_1b_ips\r
+            - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_server_main_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_ps_server_main_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.ps_server_main_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_ps_server_main_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - ps_server_main_1b_ips\r
+            - 0\r
+        port_ps_server_main_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_ps_server_main_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        vm_flavor_name:\r
+          get_input: ps_server_main_1b_flavor\r
+        vm_image_name:\r
+          get_input: ps_server_main_1b_image\r
+        compute_ps_server_main_1b_name:\r
+        - get_input:\r
+          - ps_server_main_1b_names\r
+          - 1\r
+        port_ps_server_main_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_ps_server_main_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps_server_main_1b_port_network:\r
+        - get_input: jsa_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_ps_server_main_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    test_nested1Level_duplicate_same_file:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested1ServiceTemplate.yaml\r
+        name:\r
+          get_input: security_group_name\r
+    test_nested_no_compute:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested1-no-compute\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested1-no-computeServiceTemplate.yaml\r
+        name:\r
+          get_input: jsa_net_name\r
+    abstract_cmaui_1c1_main_1:\r
+      type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_cmaui_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        port_cmaui_port_network:\r
+        - get_input: contrail_net_name\r
+        - get_input: contrail_net_name\r
+        port_cmaui_port_network_role_tag: contrail\r
+        vm_flavor_name:\r
+          get_input: cmaui_1c1_main_flavor\r
+        port_cmaui_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_cmaui_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_image_name:\r
+          get_input: cmaui_1c1_main_image\r
+        port_cmaui_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        compute_cmaui_1c1_main_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        compute_cmaui_1c1_main_name:\r
+        - get_input:\r
+          - cmaui_1c1_main_names\r
+          - 1\r
+        - get_input:\r
+          - cmaui_1c1_main_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_cmaui_1c1_main_1ServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    test_nested_pattern_4_main_0:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1:\r
+          get_input: jsa_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pattern-4ServiceTemplate.yaml\r
+        port_pd_server_pattern4_port_01_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_02_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_02_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_01_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+    test_nested1Level:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested1ServiceTemplate.yaml\r
+        name:\r
+          get_input: security_group_name\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - test_nested1Level\r
+      - test_nested1Level_duplicate_same_file\r
+      - test_nested_no_compute\r
+      - test_nested_pattern_4_main_0\r
+      - abstract_pd_server_main_1b_1\r
+      - abstract_ps_server_main_1b_1\r
+      - abstract_cmaui_1c1_main_1\r
\ No newline at end of file
index bd14b2f..5e484de 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: nested1
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    ps_server_main_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Ps Image server
-    security_group_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: security_group_name
-    cmaui_1c1_main_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    contrail_net_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of contrail v2 network
-    ps_server_main_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PS server
-    ps_server_main_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of jsa network
-    jsa_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of jsa log network
-    pd_server_main_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: PD server names
-      entry_schema:
-        type: string
-    cmaui_1c1_main_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    pd_server_main_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PD server
-    cmaui_1c1_main_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    ps_server_main_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: Ps server names
-      entry_schema:
-        type: string
-    name:
-      hidden: false
-      immutable: false
-      type: string
-      description: nested parameter
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      type: string
-      description: availabilityzone name
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      type: string
-    pd_server_main_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: PD Image server
-    pd_server_main_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-  node_templates:
-    test_nested_pattern_4_main_1:
-      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
-      directives:
-      - substitutable
-      properties:
-        p1:
-          get_input: jsa_name
-        service_template_filter:
-          substitute_service_template: nested-pattern-4ServiceTemplate.yaml
-        port_pd_server_pattern4_port_01_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_02_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_02_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_01_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-    abstract_ps_server_main_1b:
-      type: org.openecomp.resource.abstract.nodes.ps_server_main_1b
-      directives:
-      - substitutable
-      properties:
-        port_ps_server_main_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - ps_server_main_1b_ips
-            - 0
-        port_ps_server_main_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_ps_server_main_1b_availability_zone:
-        - get_input: availability_zone_0
-        vm_flavor_name:
-          get_input: ps_server_main_1b_flavor
-        vm_image_name:
-          get_input: ps_server_main_1b_image
-        compute_ps_server_main_1b_name:
-        - get_input:
-          - ps_server_main_1b_names
-          - 1
-        port_ps_server_main_1b_port_replacement_policy:
-        - AUTO
-        port_ps_server_main_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps_server_main_1b_port_network:
-        - get_input: jsa_name
-        service_template_filter:
-          substitute_service_template: Nested_ps_server_main_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_cmaui_1c1_main:
-      type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main
-      directives:
-      - substitutable
-      properties:
-        port_cmaui_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        port_cmaui_port_network:
-        - get_input: contrail_net_name
-        port_cmaui_port_network_role_tag: contrail
-        vm_flavor_name:
-          get_input: cmaui_1c1_main_flavor
-        port_cmaui_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_cmaui_port_replacement_policy:
-        - AUTO
-        vm_image_name:
-          get_input: cmaui_1c1_main_image
-        port_cmaui_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_cmaui_1c1_main_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        compute_cmaui_1c1_main_name:
-        - get_input:
-          - cmaui_1c1_main_names
-          - 0
-        - get_input:
-          - cmaui_1c1_main_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_cmaui_1c1_mainServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_pd_server_main_1b:
-      type: org.openecomp.resource.abstract.nodes.pd_server_main_1b
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_main_1b_availability_zone:
-        - get_input: availability_zone_0
-        port_pd_server_main_1b_port_replacement_policy:
-        - AUTO
-        port_pd_server_main_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_flavor_name:
-          get_input: pd_server_main_1b_flavor
-        vm_image_name:
-          get_input: pd_server_main_1b_image
-        compute_pd_server_main_1b_name:
-        - get_input:
-          - pd_server_main_1b_names
-          - 0
-        port_pd_server_main_1b_port_network:
-        - get_input: jsa_name
-        port_pd_server_main_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_main_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - pd_server_main_1b_ips
-            - 0
-        service_template_filter:
-          substitute_service_template: Nested_pd_server_main_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    test_nested2Level:
-      type: org.openecomp.resource.abstract.nodes.heat.nested2
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested2ServiceTemplate.yaml
-        name:
-          get_input: security_group_name
-  groups:
-    nested1_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/nested1.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-      members:
-      - test_nested_pattern_4_main_1
-      - test_nested2Level
-      - abstract_pd_server_main_1b
-      - abstract_ps_server_main_1b
-      - abstract_cmaui_1c1_main
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.nested1
-    capabilities:
-      feature_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - feature_server_pd_pattern4_test_nested_pattern_4_nested2
-      instance_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - instance_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.ephemeral.size_server_pd_pattern4
-      disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2
-      feature_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - feature_test_nested_pattern_4_same_type_diff_file
-      disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.incoming.packets_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_cmaui_port_2
-      network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outpoing.packets_pd_server_pattern4_port_01
-      cpu_util_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - cpu_util_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.read.requests_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.requests_cmaui_1c1_main
-      disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.read.bytes_server_pd_pattern4
-      disk.latency_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.latency_server_nested2_1c1_cmaui_2
-      disk.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      binding_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - binding_cmaui_1c1_main
-      cpu_util_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - cpu_util_server_pd_pattern4
-      disk.ephemeral.size_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.ephemeral.size_server_nested2_pd_1b
-      host_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - host_server_nested2_pd_1b
-      disk.device.latency_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.latency_ps_server_main_1b
-      feature_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - feature_server_nested2_pd_1b
-      disk.device.write.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests_server_nested2_1c1_cmaui_2
-      cpu_util_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - cpu_util_pd_server_main_1b
-      disk.latency_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.latency_server_nested2_1c1_cmaui_1
-      disk.device.latency_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.latency_pd_server_main_1b
-      disk.device.write.requests_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests_server_nested2_ps_1b
-      disk.device.read.requests_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.requests_cmaui_1c1_main
-      feature_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - feature_cmaui_1c1_main
-      disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.allocation_server_pd_pattern4
-      disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.bytes_pd_server_pattern4_port_02
-      attachment_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - attachment_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.device.write.bytes.rate_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes.rate_server_nested2_pd_1b
-      network.incoming.bytes_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.incoming.bytes_pd_server_main_1b_pd_server_main_1b_port
-      network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_02
-      disk.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.read.requests_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests_server_nested2_ps_1b
-      disk.root.size_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.root.size_server_nested2_ps_1b
-      forwarder_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - forwarder_cmaui_1c1_main_cmaui_port
-      disk.read.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.read.requests_server_nested2_1c1_cmaui_2
-      forwarder_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - forwarder_cmaui_1c1_main_cmaui_port
-      feature_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - feature_ps_server_main_1b_ps_server_main_1b_port
-      vcpus_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - vcpus_pd_server_main_1b
-      disk.device.usage_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.usage_server_nested2_pd_1b
-      disk.usage_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.usage_server_nested2_ps_1b
-      forwarder_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - forwarder_cmaui_port_2
-      os_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - os_server_pd_pattern4
-      disk.read.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes.rate_server_nested2_1c1_cmaui_1
-      disk.device.capacity_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.capacity_server_nested2_ps_1b
-      memory.resident_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - memory.resident_server_nested2_pd_1b
-      network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.bytes.rate_pd_server_pattern4_port_02
-      disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.device.write.bytes.rate_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.write.bytes.rate_pd_server_main_1b
-      instance_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - instance_pd_server_main_1b
-      disk.read.bytes.rate_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.read.bytes.rate_ps_server_main_1b
-      feature_test_nested2Level:
-      - test_nested2Level
-      - feature
-      disk.read.bytes.rate_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.read.bytes.rate_pd_server_main_1b
-      cpu.delta_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - cpu.delta_server_nested2_1c1_cmaui_2
-      disk.read.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.read.requests_server_pd_pattern4
-      disk.write.bytes_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes_server_nested2_ps_1b
-      network.outgoing.bytes.rate_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.outgoing.bytes.rate_ps_server_main_1b_ps_server_main_1b_port
-      disk.ephemeral.size_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.ephemeral.size_server_nested2_1c1_cmaui_1
-      memory_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - memory_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.outgoing.packets.rate_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.outgoing.packets.rate_ps_server_main_1b_ps_server_main_1b_port
-      network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      binding_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - binding_cmaui_1c1_main
-      network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outgoing.bytes_pd_server_pattern4_port_02
-      disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.read.bytes.rate_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes.rate_server_nested2_pd_1b
-      attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      cpu_util_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - cpu_util_server_nested2_ps_1b
-      instance_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - instance_ps_server_main_1b
-      network.outgoing.packets.rate_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_ps_server_nested2_1b_port
-      network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.device.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      memory.usage_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - memory.usage_server_nested2_ps_1b
-      disk.capacity_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.capacity_server_nested2_1c1_cmaui_2
-      disk.write.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests_server_nested2_1c1_cmaui_2
-      disk.device.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.allocation_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.allocation_pd_server_main_1b
-      endpoint_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - endpoint_cmaui_1c1_main
-      host_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - host_server_pd_pattern4
-      disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.usage_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.usage_cmaui_1c1_main
-      network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.device.write.requests_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.write.requests_pd_server_main_1b
-      cpu_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - cpu_server_pd_pattern4
-      feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2
-      host_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - host_pd_server_main_1b
-      feature_jsa_security_group2_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - feature_jsa_security_group2_test_resourceGroup
-      memory.resident_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - memory.resident_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.incoming.packets.rate_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_cmaui_port_1
-      cpu.delta_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - cpu.delta_ps_server_main_1b
-      binding_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - binding_server_pd_pattern4
-      cpu_util_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - cpu_util_ps_server_main_1b
-      disk.write.bytes_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.write.bytes_cmaui_1c1_main
-      network.incoming.bytes_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_pd_server_nested2_1b_port
-      disk.usage_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.usage_cmaui_1c1_main
-      network.incoming.packets.rate_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_cmaui_port_2
-      disk.device.write.bytes.rate_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.write.bytes.rate_ps_server_main_1b
-      cpu_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - cpu_server_nested2_ps_1b
-      binding_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - binding_pd_server_pattern4_port_02
-      forwarder_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - forwarder_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.root.size_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.root.size_server_nested2_1c1_cmaui_1
-      forwarder_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - forwarder_ps_server_main_1b_ps_server_main_1b_port
-      binding_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - binding_ps_server_main_1b_ps_server_main_1b_port
-      feature_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - feature_pd_server_pattern4_port_01
-      network.outgoing.bytes.rate_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port
-      disk.read.bytes_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes_server_nested2_pd_1b
-      network.outgoing.bytes.rate_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port
-      network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      os_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - os_ps_server_main_1b
-      disk.device.read.bytes_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.read.bytes_pd_server_main_1b
-      attachment_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - attachment_ps_server_main_1b_ps_server_main_1b_port
-      cpu.delta_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - cpu.delta_server_nested2_ps_1b
-      feature_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - feature_ps_server_nested2_1b_port
-      disk.latency_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.latency_cmaui_1c1_main
-      disk.write.bytes_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.write.bytes_cmaui_1c1_main
-      disk.write.requests.rate_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests.rate_server_nested2_pd_1b
-      disk.device.read.bytes.rate_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.read.bytes.rate_pd_server_main_1b
-      network.outgoing.bytes_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_ps_server_nested2_1b_port
-      network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      feature_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - feature_server_nested2_1c1_cmaui_2
-      endpoint_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - endpoint_cmaui_1c1_main
-      network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.device.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.read.bytes.rate_server_pd_pattern4
-      disk.device.iops_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.iops_server_nested2_1c1_cmaui_1
-      feature_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - feature_ps_server_main_1b
-      network.outpoing.packets_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.outpoing.packets_ps_server_main_1b_ps_server_main_1b_port
-      disk.device.read.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests.rate_server_nested2_1c1_cmaui_1
-      disk.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.incoming.bytes.rate_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_pd_server_nested2_1b_port
-      binding_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - binding_server_nested2_pd_1b
-      disk.latency_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.latency_cmaui_1c1_main
-      forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.root.size_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.root.size_server_pd_pattern4
-      binding_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - binding_server_nested2_1c1_cmaui_2
-      network.outgoing.packets.rate_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_cmaui_port_1
-      disk.device.write.bytes_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.write.bytes_pd_server_main_1b
-      binding_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - binding_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1
-      disk.ephemeral.size_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.ephemeral.size_ps_server_main_1b
-      disk.allocation_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.allocation_server_nested2_1c1_cmaui_1
-      disk.ephemeral.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.ephemeral.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.iops_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.iops_cmaui_1c1_main
-      network.outgoing.bytes_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_cmaui_port_2
-      forwarder_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - forwarder_pd_server_nested2_1b_port
-      network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.read.bytes.rate_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.read.bytes.rate_ps_server_main_1b
-      disk.device.usage_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.usage_cmaui_1c1_main
-      disk.usage_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.usage_server_nested2_1c1_cmaui_2
-      disk.write.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes_server_nested2_1c1_cmaui_2
-      disk.device.read.bytes.rate_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.bytes.rate_cmaui_1c1_main
-      network.outgoing.bytes.rate_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_cmaui_port_2
-      disk.device.write.requests.rate_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.write.requests.rate_pd_server_main_1b
-      network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.iops_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.iops_server_pd_pattern4
-      network.incoming.packets.rate_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.incoming.packets.rate_ps_server_main_1b_ps_server_main_1b_port
-      binding_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - binding_cmaui_port_1
-      disk.device.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      memory.usage_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - memory.usage_pd_server_main_1b
-      disk.root.size_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.root.size_ps_server_main_1b
-      network.incoming.packets_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.incoming.packets_pd_server_main_1b_pd_server_main_1b_port
-      network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.packets.rate_pd_server_pattern4_port_02
-      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2
-      disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2
-      scalable_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - scalable_cmaui_1c1_main
-      disk.device.read.requests.rate_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests.rate_server_nested2_ps_1b
-      disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.write.bytes.rate_server_pd_pattern4
-      disk.iops_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.iops_cmaui_1c1_main
-      os_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - os_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.usage_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.usage_server_nested2_1c1_cmaui_1
-      network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outgoing.packets.rate_pd_server_pattern4_port_02
-      disk.capacity_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.capacity_pd_server_main_1b
-      disk.device.write.requests_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.requests_cmaui_1c1_main
-      disk.read.requests_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.read.requests_pd_server_main_1b
-      disk.allocation_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.allocation_server_nested2_1c1_cmaui_2
-      disk.read.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes_server_nested2_1c1_cmaui_1
-      network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.bytes_pd_server_pattern4_port_01
-      network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.iops_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.iops_server_nested2_1c1_cmaui_1
-      network.outgoing.bytes.rate_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_pd_server_nested2_1b_port
-      disk.write.requests_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests_server_nested2_ps_1b
-      disk.write.requests_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.write.requests_pd_server_main_1b
-      disk.device.write.requests.rate_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests.rate_server_nested2_ps_1b
-      instance_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - instance_server_nested2_1c1_cmaui_2
-      network.outpoing.packets_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_pd_server_nested2_1b_port
-      disk.latency_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.latency_ps_server_main_1b
-      os_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - os_server_nested2_pd_1b
-      disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.read.bytes_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.read.bytes_pd_server_main_1b
-      disk.write.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.write.requests_server_pd_pattern4
-      disk.device.read.bytes.rate_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes.rate_server_nested2_pd_1b
-      cpu_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - cpu_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.write.requests.rate_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.write.requests.rate_ps_server_main_1b
-      disk.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.latency_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.latency_server_nested2_1c1_cmaui_2
-      network.incoming.bytes_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_ps_server_nested2_1b_port
-      feature_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - feature_pd_server_pattern4_port_02
-      network.outgoing.packets.rate_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_cmaui_port_2
-      network.outgoing.bytes_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.outgoing.bytes_cmaui_1c1_main_cmaui_port
-      endpoint_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - endpoint_pd_server_main_1b
-      disk.allocation_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.allocation_cmaui_1c1_main
-      disk.device.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.outgoing.bytes_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.outgoing.bytes_cmaui_1c1_main_cmaui_port
-      vcpus_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - vcpus_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.write.bytes_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes_server_nested2_pd_1b
-      network.incoming.packets.rate_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_ps_server_nested2_1b_port
-      network.incoming.packets.rate_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_pd_server_nested2_1b_port
-      endpoint_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - endpoint_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1
-      cpu.delta_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - cpu.delta_server_pd_pattern4
-      disk.write.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes_server_nested2_1c1_cmaui_1
-      network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      feature_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - feature_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      scalable_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - scalable_server_nested2_pd_1b
-      network.incoming.packets_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.incoming.packets_ps_server_main_1b_ps_server_main_1b_port
-      binding_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - binding_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      network.incoming.packets.rate_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.incoming.packets.rate_pd_server_main_1b_pd_server_main_1b_port
-      forwarder_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - forwarder_ps_server_nested2_1b_port
-      network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.device.usage_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.usage_cmaui_1c1_main
-      disk.capacity_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.capacity_server_nested2_ps_1b
-      binding_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - binding_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.root.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.root.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      host_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - host_ps_server_main_1b
-      disk.root.size_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.root.size_pd_server_main_1b
-      memory.usage_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - memory.usage_ps_server_main_1b
-      network.outpoing.packets_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_ps_server_nested2_1b_port
-      instance_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - instance_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      os_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - os_server_nested2_ps_1b
-      scalable_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - scalable_ps_server_main_1b
-      disk.device.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.capacity_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.capacity_cmaui_1c1_main
-      disk.device.read.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests.rate_server_nested2_1c1_cmaui_2
-      host_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - host_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      memory.resident_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - memory.resident_ps_server_main_1b
-      os_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - os_pd_server_main_1b
-      disk.device.read.bytes_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.bytes_cmaui_1c1_main
-      disk.latency_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.latency_server_nested2_ps_1b
-      disk.root.size_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.root.size_server_nested2_1c1_cmaui_2
-      binding_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - binding_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outgoing.bytes_pd_server_pattern4_port_01
-      memory.resident_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - memory.resident_server_nested2_1c1_cmaui_1
-      vcpus_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - vcpus_server_nested2_ps_1b
-      disk.device.iops_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.iops_server_nested2_1c1_cmaui_2
-      network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.write.requests_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.write.requests_ps_server_main_1b
-      forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - forwarder_pd_server_pattern4_port_02
-      memory_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - memory_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.allocation_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.allocation_cmaui_1c1_main
-      feature_jsa_security_group1_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - feature_jsa_security_group1_test_nested3Level
-      disk.device.read.requests_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.read.requests_ps_server_main_1b
-      network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.device.read.bytes_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.bytes_cmaui_1c1_main
-      disk.capacity_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.capacity_server_nested2_1c1_cmaui_1
-      disk.write.requests.rate_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.write.requests.rate_cmaui_1c1_main
-      disk.device.read.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.allocation_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.allocation_cmaui_1c1_main
-      disk.device.read.bytes_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes_server_nested2_pd_1b
-      disk.device.allocation_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.allocation_cmaui_1c1_main
-      disk.capacity_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.capacity_ps_server_main_1b
-      binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.read.requests_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.read.requests_server_nested2_ps_1b
-      cpu.delta_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - cpu.delta_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.read.bytes_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes_server_nested2_ps_1b
-      network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      scalable_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - scalable_server_pd_pattern4
-      disk.device.latency_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.latency_server_pd_pattern4
-      disk.write.requests.rate_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.write.requests.rate_cmaui_1c1_main
-      scalable_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - scalable_cmaui_1c1_main
-      disk.read.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes.rate_server_nested2_1c1_cmaui_2
-      disk.device.write.requests_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.requests_cmaui_1c1_main
-      disk.device.write.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests_server_nested2_1c1_cmaui_1
-      instance_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - instance_server_pd_pattern4
-      disk.allocation_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.allocation_server_nested2_pd_1b
-      feature_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - feature_cmaui_1c1_main
-      forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - forwarder_pd_server_pattern4_port_01
-      disk.device.read.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes_server_nested2_1c1_cmaui_2
-      disk.device.capacity_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.capacity_cmaui_1c1_main
-      scalable_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - scalable_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.write.bytes.rate_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.write.bytes.rate_pd_server_main_1b
-      feature_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - feature_test_nested3Level
-      disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.iops_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.iops_pd_server_main_1b
-      disk.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.ephemeral.size_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.ephemeral.size_server_nested2_1c1_cmaui_2
-      feature_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - feature_pd_server_main_1b
-      network.incoming.bytes_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.incoming.bytes_cmaui_1c1_main_cmaui_port
-      network.incoming.bytes_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.incoming.bytes_cmaui_1c1_main_cmaui_port
-      scalable_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - scalable_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      forwarder_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - forwarder_cmaui_port_1
-      disk.latency_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.latency_server_nested2_pd_1b
-      memory.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - memory.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      cpu.delta_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - cpu.delta_cmaui_1c1_main
-      disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.write.requests.rate_server_pd_pattern4
-      disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.write.requests_server_pd_pattern4
-      disk.device.write.bytes_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.bytes_cmaui_1c1_main
-      disk.write.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests.rate_server_nested2_1c1_cmaui_2
-      cpu_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - cpu_server_nested2_pd_1b
-      network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outgoing.packets.rate_pd_server_pattern4_port_01
-      disk.device.allocation_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.allocation_server_nested2_1c1_cmaui_2
-      disk.device.allocation_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.allocation_pd_server_main_1b
-      disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.read.bytes_server_pd_pattern4
-      vcpus_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - vcpus_server_nested2_pd_1b
-      disk.device.usage_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.usage_server_nested2_1c1_cmaui_1
-      network.incoming.bytes_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_cmaui_port_1
-      disk.device.latency_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.latency_cmaui_1c1_main
-      disk.device.allocation_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.allocation_server_nested2_1c1_cmaui_1
-      vcpus_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - vcpus_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      cpu_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - cpu_cmaui_1c1_main
-      endpoint_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - endpoint_server_nested2_1c1_cmaui_2
-      disk.write.bytes.rate_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.write.bytes.rate_ps_server_main_1b
-      disk.device.read.requests.rate_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.read.requests.rate_pd_server_main_1b
-      feature_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - feature
-      memory.usage_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - memory.usage_server_nested2_pd_1b
-      disk.device.write.bytes_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes_server_nested2_pd_1b
-      disk.device.capacity_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.capacity_ps_server_main_1b
-      network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.packets.rate_pd_server_pattern4_port_01
-      disk.device.write.bytes_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.bytes_cmaui_1c1_main
-      network.incoming.bytes_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_cmaui_port_2
-      binding_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - binding_pd_server_main_1b_pd_server_main_1b_port
-      disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.write.bytes_server_pd_pattern4
-      disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2
-      memory.resident_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - memory.resident_pd_server_main_1b
-      network.incoming.bytes_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.incoming.bytes_ps_server_main_1b_ps_server_main_1b_port
-      vcpus_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - vcpus_server_nested2_1c1_cmaui_1
-      disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.device.read.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes_server_nested2_1c1_cmaui_1
-      disk.read.bytes.rate_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes.rate_server_nested2_ps_1b
-      endpoint_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - endpoint_server_nested2_1c1_cmaui_1
-      attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.iops_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.iops_server_pd_pattern4
-      network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.device.read.requests_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests_server_nested2_pd_1b
-      attachment_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - attachment_pd_server_pattern4_port_02
-      memory.resident_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - memory.resident_server_pd_pattern4
-      feature_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - feature_pd_server_main_1b_pd_server_main_1b_port
-      host_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - host_cmaui_1c1_main
-      network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.ephemeral.size_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.ephemeral.size_server_nested2_ps_1b
-      disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.outgoing.bytes_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_pd_server_nested2_1b_port
-      network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      disk.device.write.bytes.rate_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes.rate_server_nested2_ps_1b
-      disk.device.usage_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.usage_ps_server_main_1b
-      network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.device.capacity_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.capacity_server_nested2_1c1_cmaui_2
-      disk.device.write.requests_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests_server_nested2_pd_1b
-      forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      disk.device.usage_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.usage_server_nested2_1c1_cmaui_2
-      disk.write.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests.rate_server_nested2_1c1_cmaui_1
-      network.incoming.bytes.rate_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_cmaui_port_2
-      disk.device.latency_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.latency_cmaui_1c1_main
-      disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.incoming.packets.rate_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.incoming.packets.rate_cmaui_1c1_main_cmaui_port
-      network.incoming.packets.rate_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.incoming.packets.rate_cmaui_1c1_main_cmaui_port
-      disk.device.read.requests.rate_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests.rate_server_nested2_pd_1b
-      disk.device.allocation_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.allocation_ps_server_main_1b
-      vcpus_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - vcpus_cmaui_1c1_main
-      attachment_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - attachment_pd_server_main_1b_pd_server_main_1b_port
-      disk.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.incoming.bytes.rate_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_cmaui_port_1
-      os_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - os_server_nested2_1c1_cmaui_2
-      disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
-      memory.resident_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - memory.resident_cmaui_1c1_main
-      network.incoming.packets_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_pd_server_nested2_1b_port
-      disk.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.outpoing.packets_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.outpoing.packets_cmaui_1c1_main_cmaui_port
-      binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      network.outpoing.packets_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.outpoing.packets_cmaui_1c1_main_cmaui_port
-      disk.usage_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.usage_server_pd_pattern4
-      memory.resident_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - memory.resident_server_nested2_1c1_cmaui_2
-      disk.capacity_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.capacity_server_nested2_pd_1b
-      disk.ephemeral.size_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.ephemeral.size_cmaui_1c1_main
-      cpu_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - cpu_server_pd_pattern4_test_nested_pattern_4_nested2
-      binding_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - binding_pd_server_main_1b
-      memory.resident_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - memory.resident_cmaui_1c1_main
-      disk.device.read.requests.rate_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.requests.rate_cmaui_1c1_main
-      disk.device.capacity_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.capacity_pd_server_main_1b
-      disk.read.bytes_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.read.bytes_cmaui_1c1_main
-      os_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - os_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.device.read.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests_server_nested2_1c1_cmaui_1
-      host_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - host_server_nested2_ps_1b
-      host_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - host_server_pd_pattern4_test_nested_pattern_4_nested2
-      cpu_util_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - cpu_util_server_nested2_1c1_cmaui_1
-      network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.root.size_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.root.size_cmaui_1c1_main
-      disk.usage_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.usage_ps_server_main_1b
-      cpu_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - cpu_pd_server_main_1b
-      disk.read.requests_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.read.requests_cmaui_1c1_main
-      memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.outgoing.packets.rate_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_pd_server_nested2_1b_port
-      disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.read.requests.rate_server_pd_pattern4
-      disk.ephemeral.size_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.ephemeral.size_cmaui_1c1_main
-      host_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - host_cmaui_1c1_main
-      disk.device.iops_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.iops_cmaui_1c1_main
-      disk.device.latency_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.latency_server_nested2_ps_1b
-      disk.device.read.requests_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests_server_nested2_1c1_cmaui_2
-      cpu_util_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - cpu_util_server_nested2_1c1_cmaui_2
-      instance_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - instance_cmaui_1c1_main
-      memory_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - memory_server_nested2_1c1_cmaui_2
-      disk.device.read.requests.rate_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.read.requests.rate_ps_server_main_1b
-      disk.device.read.requests.rate_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.requests.rate_cmaui_1c1_main
-      disk.read.bytes_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.read.bytes_cmaui_1c1_main
-      network.outpoing.packets_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.outpoing.packets_pd_server_main_1b_pd_server_main_1b_port
-      disk.write.bytes.rate_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes.rate_server_nested2_pd_1b
-      disk.root.size_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.root.size_server_nested2_pd_1b
-      endpoint_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - endpoint_server_nested2_ps_1b
-      attachment_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - attachment_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.packets_pd_server_pattern4_port_01
-      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2
-      disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.capacity_server_pd_pattern4
-      disk.device.read.bytes.rate_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes.rate_server_nested2_ps_1b
-      feature_jsa_security_group1_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - feature_jsa_security_group1_test_resourceGroup
-      disk.device.usage_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.usage_server_nested2_ps_1b
-      disk.ephemeral.size_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.ephemeral.size_pd_server_main_1b
-      disk.root.size_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.root.size_cmaui_1c1_main
-      disk.iops_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.iops_server_nested2_1c1_cmaui_2
-      memory_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - memory_server_pd_pattern4
-      feature_jsa_security_group2_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - feature_jsa_security_group2_test_nested3Level
-      network.incoming.bytes.rate_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes.rate_ps_server_nested2_1b_port
-      disk.allocation_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.allocation_server_pd_pattern4
-      cpu_util_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - cpu_util_cmaui_1c1_main
-      disk.device.write.requests.rate_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.requests.rate_cmaui_1c1_main
-      network.outgoing.bytes.rate_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.outgoing.bytes.rate_pd_server_main_1b_pd_server_main_1b_port
-      instance_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - instance_cmaui_1c1_main
-      network.outgoing.packets.rate_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.outgoing.packets.rate_pd_server_main_1b_pd_server_main_1b_port
-      disk.device.iops_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.iops_cmaui_1c1_main
-      network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.bytes.rate_pd_server_pattern4_port_01
-      network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      forwarder_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - forwarder_pd_server_main_1b_pd_server_main_1b_port
-      network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.incoming.packets_pd_server_pattern4_port_02
-      disk.write.requests.rate_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.write.requests.rate_ps_server_main_1b
-      disk.allocation_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.allocation_server_nested2_ps_1b
-      feature_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - feature_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      network.outpoing.packets_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_cmaui_port_2
-      cpu.delta_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - cpu.delta_cmaui_1c1_main
-      network.outgoing.bytes_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes_cmaui_port_1
-      feature_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - feature_server_nested2_ps_1b
-      network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_01
-      network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      vcpus_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - vcpus_server_nested2_1c1_cmaui_2
-      disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.device.read.bytes.rate_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.read.bytes.rate_cmaui_1c1_main
-      disk.device.write.requests.rate_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.requests.rate_cmaui_1c1_main
-      disk.iops_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.iops_ps_server_main_1b
-      disk.device.iops_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.iops_server_nested2_pd_1b
-      endpoint_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - endpoint_server_pd_pattern4
-      cpu_util_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - cpu_util_cmaui_1c1_main
-      disk.device.allocation_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.allocation_server_nested2_pd_1b
-      disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.outgoing.bytes.rate_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_ps_server_nested2_1b_port
-      binding_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - binding_pd_server_pattern4_port_01
-      network.incoming.packets_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.incoming.packets_cmaui_1c1_main_cmaui_port
-      network.incoming.packets_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.incoming.packets_cmaui_1c1_main_cmaui_port
-      network.incoming.bytes.rate_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.incoming.bytes.rate_ps_server_main_1b_ps_server_main_1b_port
-      disk.device.latency_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.latency_server_nested2_1c1_cmaui_1
-      cpu_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - cpu_cmaui_1c1_main
-      disk.write.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes.rate_server_nested2_1c1_cmaui_2
-      network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - network.outpoing.packets_pd_server_pattern4_port_02
-      vcpus_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - vcpus_server_pd_pattern4
-      host_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - host_server_nested2_1c1_cmaui_1
-      disk.write.requests_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.write.requests_cmaui_1c1_main
-      memory.usage_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - memory.usage_cmaui_1c1_main
-      memory_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - memory_server_nested2_ps_1b
-      endpoint_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - endpoint_ps_server_main_1b
-      network.outpoing.packets_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_cmaui_port_1
-      feature_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - feature_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.iops_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.iops_server_nested2_pd_1b
-      disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.read.bytes.rate_server_pd_pattern4
-      disk.capacity_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.capacity_cmaui_1c1_main
-      instance_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - instance_server_nested2_ps_1b
-      disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.read.requests_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.read.requests_ps_server_main_1b
-      network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      disk.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      network.outgoing.bytes_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - network.outgoing.bytes_ps_server_main_1b_ps_server_main_1b_port
-      disk.device.iops_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.iops_server_nested2_ps_1b
-      disk.read.requests_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.read.requests_server_nested2_pd_1b
-      cpu.delta_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - cpu.delta_pd_server_main_1b
-      disk.capacity_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.capacity_server_pd_pattern4
-      network.outgoing.bytes_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.outgoing.bytes_pd_server_main_1b_pd_server_main_1b_port
-      instance_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - instance_server_nested2_1c1_cmaui_1
-      feature_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - feature_test_nested_pattern_4_nested2
-      memory_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - memory_cmaui_1c1_main
-      disk.write.bytes_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.write.bytes_ps_server_main_1b
-      disk.write.requests.rate_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.write.requests.rate_pd_server_main_1b
-      cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2
-      attachment_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - attachment_cmaui_port_1
-      binding_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - binding_ps_server_main_1b
-      disk.capacity_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.capacity_cmaui_1c1_main
-      disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.write.requests.rate_server_pd_pattern4
-      os_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - os_cmaui_1c1_main
-      disk.write.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes.rate_server_nested2_1c1_cmaui_1
-      host_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - host_server_nested2_1c1_cmaui_2
-      disk.read.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.read.bytes_server_nested2_1c1_cmaui_2
-      disk.device.write.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests.rate_server_nested2_1c1_cmaui_1
-      network.outgoing.bytes.rate_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_cmaui_port_1
-      disk.device.iops_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.iops_ps_server_main_1b
-      disk.write.bytes_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.write.bytes_pd_server_main_1b
-      disk.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      binding_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - binding_server_nested2_1c1_cmaui_1
-      memory_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - memory_cmaui_1c1_main
-      attachment_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - attachment_pd_server_pattern4_port_01
-      disk.write.bytes.rate_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.bytes.rate_server_nested2_ps_1b
-      disk.device.write.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes_server_nested2_1c1_cmaui_1
-      feature_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - feature_server_nested2_1c1_cmaui_1
-      disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.read.bytes.rate_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.read.bytes.rate_cmaui_1c1_main
-      attachment_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - attachment_cmaui_port_2
-      disk.device.write.bytes.rate_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.bytes.rate_cmaui_1c1_main
-      endpoint_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - endpoint_server_nested2_pd_1b
-      memory_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - memory_pd_server_main_1b
-      network.incoming.bytes.rate_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - network.incoming.bytes.rate_pd_server_main_1b_pd_server_main_1b_port
-      disk.device.read.requests_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.read.requests_pd_server_main_1b
-      disk.read.requests_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.read.requests_cmaui_1c1_main
-      disk.device.capacity_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.capacity_server_nested2_pd_1b
-      feature_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - feature_cmaui_1c1_main_cmaui_port
-      feature_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - feature_cmaui_1c1_main_cmaui_port
-      network.incoming.bytes.rate_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port
-      network.incoming.bytes.rate_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port
-      disk.device.iops_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.iops_pd_server_main_1b
-      os_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - os_cmaui_1c1_main
-      disk.latency_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.latency_server_pd_pattern4
-      memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2
-      attachment_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - attachment_pd_server_nested2_1b_port
-      disk.device.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      feature_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - feature_cmaui_port_2
-      disk.device.write.bytes_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes_server_nested2_ps_1b
-      cpu_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - cpu_ps_server_main_1b
-      scalable_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - scalable_pd_server_main_1b
-      memory.usage_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - memory.usage_server_nested2_1c1_cmaui_2
-      memory.usage_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - memory.usage_cmaui_1c1_main
-      disk.read.bytes.rate_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.read.bytes.rate_cmaui_1c1_main
-      network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.write.requests_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.write.requests_cmaui_1c1_main
-      disk.device.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      cpu_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - cpu_server_nested2_1c1_cmaui_1
-      disk.usage_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.usage_server_nested2_pd_1b
-      disk.device.read.bytes_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes_server_nested2_ps_1b
-      disk.device.write.bytes.rate_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.device.write.bytes.rate_cmaui_1c1_main
-      feature_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - feature_pd_server_nested2_1b_port
-      network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      binding_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - binding_cmaui_port_2
-      memory_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - memory_ps_server_main_1b
-      disk.read.bytes_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.read.bytes_ps_server_main_1b
-      vcpus_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - vcpus_ps_server_main_1b
-      instance_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - instance_server_nested2_pd_1b
-      disk.device.read.bytes_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.read.bytes_ps_server_main_1b
-      disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.read.requests_server_pd_pattern4
-      disk.write.bytes.rate_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - disk.write.bytes.rate_cmaui_1c1_main
-      network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2
-      feature_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - feature_server_pd_pattern4
-      scalable_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - scalable_server_nested2_1c1_cmaui_2
-      disk.device.usage_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.device.usage_pd_server_main_1b
-      memory_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - memory_server_nested2_pd_1b
-      binding_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - binding_pd_server_nested2_1b_port
-      feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.write.bytes_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.write.bytes_ps_server_main_1b
-      vcpus_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - vcpus_cmaui_1c1_main
-      network.incoming.packets_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_ps_server_nested2_1b_port
-      disk.device.usage_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.usage_server_pd_pattern4
-      cpu_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - cpu_server_nested2_1c1_cmaui_2
-      disk.write.requests_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests_server_nested2_pd_1b
-      memory.usage_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - memory.usage_server_pd_pattern4
-      disk.device.write.requests.rate_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests.rate_server_nested2_pd_1b
-      disk.usage_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.usage_pd_server_main_1b
-      disk.write.bytes.rate_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - disk.write.bytes.rate_cmaui_1c1_main
-      binding_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - binding_ps_server_nested2_1b_port
-      cpu_util_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - cpu_util_server_nested2_pd_1b
-      scalable_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - scalable_server_nested2_ps_1b
-      disk.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      memory_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - memory_server_nested2_1c1_cmaui_1
-      network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.device.write.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.requests.rate_server_nested2_1c1_cmaui_2
-      scalable_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - scalable_server_nested2_1c1_cmaui_1
-      disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.write.bytes_server_pd_pattern4
-      disk.iops_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.iops_server_nested2_ps_1b
-      memory.resident_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - memory.resident_server_nested2_ps_1b
-      cpu.delta_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - cpu.delta_server_nested2_pd_1b
-      memory.usage_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - memory.usage_server_nested2_1c1_cmaui_1
-      forwarder_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - forwarder_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      disk.device.allocation_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.allocation_server_nested2_ps_1b
-      attachment_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - attachment_ps_server_nested2_1b_port
-      disk.read.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.read.requests_server_nested2_1c1_cmaui_1
-      disk.device.write.requests_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.device.write.requests_ps_server_main_1b
-      disk.allocation_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - disk.allocation_ps_server_main_1b
-      disk.latency_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - disk.latency_pd_server_main_1b
-      disk.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      disk.device.capacity_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.device.capacity_server_nested2_1c1_cmaui_1
-      disk.device.write.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.write.bytes_server_nested2_1c1_cmaui_2
-      disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - disk.device.write.bytes.rate_server_pd_pattern4
-      disk.device.latency_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.device.latency_server_nested2_pd_1b
-      endpoint_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - endpoint_server_pd_pattern4_test_nested_pattern_4_nested2
-      disk.write.requests_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests_server_nested2_1c1_cmaui_1
-      disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2
-      network.outgoing.packets.rate_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port
-      binding_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - binding_cmaui_1c1_main_cmaui_port
-      network.outgoing.packets.rate_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port
-      binding_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - binding_cmaui_1c1_main_cmaui_port
-      network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      os_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - os_server_nested2_1c1_cmaui_1
-      binding_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - binding_server_nested2_ps_1b
-      disk.write.requests.rate_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - disk.write.requests.rate_server_nested2_ps_1b
-      attachment_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - attachment_cmaui_1c1_main_cmaui_port
-      attachment_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - attachment_cmaui_1c1_main_cmaui_port
-      feature_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - feature_test_resourceGroup
-      disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2
-      feature_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - feature_cmaui_port_1
-      disk.device.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - disk.device.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      cpu.delta_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - cpu.delta_server_nested2_1c1_cmaui_1
-      network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      network.incoming.packets_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - network.incoming.packets_cmaui_port_1
-      disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2
-    requirements:
-      dependency_jsa_security_group2_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - dependency_jsa_security_group2_test_resourceGroup
-      link_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - link_pd_server_pattern4_port_01
-      dependency_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - dependency_cmaui_port_2
-      dependency_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - dependency_server_nested2_1c1_cmaui_1
-      port_jsa_security_group1_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - port_jsa_security_group1_test_nested3Level
-      link_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - link_pd_server_pattern4_port_02
-      dependency_test_nested2Level:
-      - test_nested2Level
-      - dependency
-      dependency_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - dependency_pd_server_pattern4_port_02
-      local_storage_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - local_storage_ps_server_main_1b
-      dependency_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - dependency_cmaui_1c1_main_cmaui_port
-      dependency_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - dependency_pd_server_main_1b
-      dependency_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - dependency_cmaui_1c1_main
-      dependency_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - dependency_cmaui_1c1_main_cmaui_port
-      dependency_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - dependency_pd_server_pattern4_port_01
-      local_storage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - local_storage_server_pd_pattern4_test_nested_pattern_4_nested2
-      local_storage_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - local_storage_server_nested2_1c1_cmaui_2
-      local_storage_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - local_storage_server_nested2_pd_1b
-      local_storage_server_nested2_1c1_cmaui_1_test_nested2Level:
-      - test_nested2Level
-      - local_storage_server_nested2_1c1_cmaui_1
-      local_storage_server_main_pd_1b_1:
-      - abstract_pd_server_main_1b
-      - local_storage_pd_server_main_1b
-      dependency_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - dependency_test_resourceGroup
-      link_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - link_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      dependency_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - dependency_pd_server_nested2_1b_port
-      dependency_server_nested2_1c1_cmaui_2_test_nested2Level:
-      - test_nested2Level
-      - dependency_server_nested2_1c1_cmaui_2
-      link_pd_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - link_pd_server_nested2_1b_port
-      dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      dependency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - dependency_server_pd_pattern4_test_nested_pattern_4_nested2
-      dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      local_storage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - local_storage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      link_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - link_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      dependency_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - dependency_cmaui_port_1
-      local_storage_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - local_storage_server_pd_pattern4
-      dependency_server_main_ps_1b_1:
-      - abstract_ps_server_main_1b
-      - dependency_ps_server_main_1b
-      dependency_server_nested2_pd_1b_test_nested2Level:
-      - test_nested2Level
-      - dependency_server_nested2_pd_1b
-      dependency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - dependency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file
-      dependency_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - dependency_server_nested2_ps_1b
-      dependency_jsa_security_group1_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - dependency_jsa_security_group1_test_nested3Level
-      link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file
-      local_storage_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - local_storage_cmaui_1c1_main
-      dependency_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - dependency_pd_server_main_1b_pd_server_main_1b_port
-      link_cmaui_port_11:
-      - abstract_cmaui_1c1_main
-      - link_cmaui_1c1_main_cmaui_port
-      dependency_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - dependency_pd_server_pattern4_port_01_test_nested_pattern_4_nested2
-      link_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - link_ps_server_main_1b_ps_server_main_1b_port
-      dependency_jsa_security_group1_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - dependency_jsa_security_group1_test_resourceGroup
-      dependency_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - dependency_pd_server_pattern4_port_02_test_nested_pattern_4_nested2
-      link_cmaui_port_2_test_nested2Level:
-      - test_nested2Level
-      - link_cmaui_port_2
-      link_cmaui_port_12:
-      - abstract_cmaui_1c1_main
-      - link_cmaui_1c1_main_cmaui_port
-      dependency_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - dependency_test_nested_pattern_4_same_type_diff_file
-      link_pd_server_main_1b_port_1:
-      - abstract_pd_server_main_1b
-      - link_pd_server_main_1b_pd_server_main_1b_port
-      link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:
-      - test_nested2Level
-      - link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file
-      port_jsa_security_group2_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - port_jsa_security_group2_test_resourceGroup
-      port_jsa_security_group2_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - port_jsa_security_group2_test_nested3Level
-      dependency_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - dependency
-      dependency_jsa_security_group2_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - dependency_jsa_security_group2_test_nested3Level
-      dependency_server_pd_pattern4_test_nested_pattern_4_main_1:
-      - test_nested_pattern_4_main_1
-      - dependency_server_pd_pattern4
-      link_cmaui_port_1_test_nested2Level:
-      - test_nested2Level
-      - link_cmaui_port_1
-      local_storage_server_main_1c1_cmaui_21:
-      - abstract_cmaui_1c1_main
-      - local_storage_cmaui_1c1_main
-      local_storage_server_nested2_ps_1b_test_nested2Level:
-      - test_nested2Level
-      - local_storage_server_nested2_ps_1b
-      dependency_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - dependency_ps_server_nested2_1b_port
-      link_ps_server_nested2_1b_port_test_nested2Level:
-      - test_nested2Level
-      - link_ps_server_nested2_1b_port
-      dependency_server_main_1c1_cmaui_11:
-      - abstract_cmaui_1c1_main
-      - dependency_cmaui_1c1_main
-      dependency_ps_server_main_1b_port_1:
-      - abstract_ps_server_main_1b
-      - dependency_ps_server_main_1b_ps_server_main_1b_port
-      port_jsa_security_group1_test_resourceGroup_test_nested2Level:
-      - test_nested2Level
-      - port_jsa_security_group1_test_resourceGroup
-      dependency_test_nested_pattern_4_nested2_test_nested2Level:
-      - test_nested2Level
-      - dependency_test_nested_pattern_4_nested2
-      dependency_test_nested3Level_test_nested2Level:
-      - test_nested2Level
-      - dependency_test_nested3Level
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    ps_server_main_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Ps Image server\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: security_group_name\r
+    cmaui_1c1_main_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    contrail_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: network name of contrail v2 network\r
+    ps_server_main_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PS server\r
+    ps_server_main_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: network name of jsa network\r
+    jsa_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: network name of jsa log network\r
+    pd_server_main_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: PD server names\r
+      entry_schema:\r
+        type: string\r
+    cmaui_1c1_main_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    pd_server_main_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PD server\r
+    cmaui_1c1_main_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    ps_server_main_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Ps server names\r
+      entry_schema:\r
+        type: string\r
+    name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: nested parameter\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availabilityzone name\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    pd_server_main_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: PD Image server\r
+    pd_server_main_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+  node_templates:\r
+    test_nested_pattern_4_main_1:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1:\r
+          get_input: jsa_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pattern-4ServiceTemplate.yaml\r
+        port_pd_server_pattern4_port_01_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_02_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_02_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_01_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+    abstract_ps_server_main_1b:\r
+      type: org.openecomp.resource.abstract.nodes.ps_server_main_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_ps_server_main_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - ps_server_main_1b_ips\r
+            - 0\r
+        port_ps_server_main_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_ps_server_main_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        vm_flavor_name:\r
+          get_input: ps_server_main_1b_flavor\r
+        vm_image_name:\r
+          get_input: ps_server_main_1b_image\r
+        compute_ps_server_main_1b_name:\r
+        - get_input:\r
+          - ps_server_main_1b_names\r
+          - 1\r
+        port_ps_server_main_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_ps_server_main_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps_server_main_1b_port_network:\r
+        - get_input: jsa_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_ps_server_main_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_cmaui_1c1_main:\r
+      type: org.openecomp.resource.abstract.nodes.cmaui_1c1_main\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_cmaui_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        port_cmaui_port_network:\r
+        - get_input: contrail_net_name\r
+        - get_input: contrail_net_name\r
+        port_cmaui_port_network_role_tag: contrail\r
+        vm_flavor_name:\r
+          get_input: cmaui_1c1_main_flavor\r
+        port_cmaui_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_cmaui_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_image_name:\r
+          get_input: cmaui_1c1_main_image\r
+        port_cmaui_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        compute_cmaui_1c1_main_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        compute_cmaui_1c1_main_name:\r
+        - get_input:\r
+          - cmaui_1c1_main_names\r
+          - 0\r
+        - get_input:\r
+          - cmaui_1c1_main_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_cmaui_1c1_mainServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_pd_server_main_1b:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server_main_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_main_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_pd_server_main_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_pd_server_main_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_flavor_name:\r
+          get_input: pd_server_main_1b_flavor\r
+        vm_image_name:\r
+          get_input: pd_server_main_1b_image\r
+        compute_pd_server_main_1b_name:\r
+        - get_input:\r
+          - pd_server_main_1b_names\r
+          - 0\r
+        port_pd_server_main_1b_port_network:\r
+        - get_input: jsa_name\r
+        port_pd_server_main_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_main_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - pd_server_main_1b_ips\r
+            - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_server_main_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    test_nested2Level:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested2ServiceTemplate.yaml\r
+        name:\r
+          get_input: security_group_name\r
+  groups:\r
+    nested1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested1.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - test_nested_pattern_4_main_1\r
+      - test_nested2Level\r
+      - abstract_pd_server_main_1b\r
+      - abstract_ps_server_main_1b\r
+      - abstract_cmaui_1c1_main\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+    capabilities:\r
+      feature_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      instance_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - instance_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.ephemeral.size_server_pd_pattern4\r
+      disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      feature_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_test_nested_pattern_4_same_type_diff_file\r
+      disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.incoming.packets_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_cmaui_port_2\r
+      network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outpoing.packets_pd_server_pattern4_port_01\r
+      cpu_util_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_util_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.read.requests_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.requests_cmaui_1c1_main\r
+      disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.read.bytes_server_pd_pattern4\r
+      disk.latency_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.latency_server_nested2_1c1_cmaui_2\r
+      disk.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      binding_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - binding_cmaui_1c1_main\r
+      cpu_util_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - cpu_util_server_pd_pattern4\r
+      disk.ephemeral.size_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.ephemeral.size_server_nested2_pd_1b\r
+      host_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - host_server_nested2_pd_1b\r
+      disk.device.latency_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.latency_ps_server_main_1b\r
+      feature_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_server_nested2_pd_1b\r
+      disk.device.write.requests_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests_server_nested2_1c1_cmaui_2\r
+      cpu_util_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - cpu_util_pd_server_main_1b\r
+      disk.latency_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.latency_server_nested2_1c1_cmaui_1\r
+      disk.device.latency_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.latency_pd_server_main_1b\r
+      disk.device.write.requests_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests_server_nested2_ps_1b\r
+      disk.device.read.requests_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.requests_cmaui_1c1_main\r
+      feature_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - feature_cmaui_1c1_main\r
+      disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.allocation_server_pd_pattern4\r
+      disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.bytes_pd_server_pattern4_port_02\r
+      attachment_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.device.write.bytes.rate_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes.rate_server_nested2_pd_1b\r
+      network.incoming.bytes_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.incoming.bytes_pd_server_main_1b_pd_server_main_1b_port\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_02\r
+      disk.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.read.requests_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests_server_nested2_ps_1b\r
+      disk.root.size_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.root.size_server_nested2_ps_1b\r
+      forwarder_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - forwarder_cmaui_1c1_main_cmaui_port\r
+      disk.read.requests_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.requests_server_nested2_1c1_cmaui_2\r
+      forwarder_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - forwarder_cmaui_1c1_main_cmaui_port\r
+      feature_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - feature_ps_server_main_1b_ps_server_main_1b_port\r
+      vcpus_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - vcpus_pd_server_main_1b\r
+      disk.device.usage_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.usage_server_nested2_pd_1b\r
+      disk.usage_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.usage_server_nested2_ps_1b\r
+      forwarder_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_cmaui_port_2\r
+      os_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - os_server_pd_pattern4\r
+      disk.read.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes.rate_server_nested2_1c1_cmaui_1\r
+      disk.device.capacity_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.capacity_server_nested2_ps_1b\r
+      memory.resident_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.resident_server_nested2_pd_1b\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_02\r
+      disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.device.write.bytes.rate_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.write.bytes.rate_pd_server_main_1b\r
+      instance_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - instance_pd_server_main_1b\r
+      disk.read.bytes.rate_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.read.bytes.rate_ps_server_main_1b\r
+      feature_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature\r
+      disk.read.bytes.rate_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.read.bytes.rate_pd_server_main_1b\r
+      cpu.delta_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu.delta_server_nested2_1c1_cmaui_2\r
+      disk.read.requests_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.read.requests_server_pd_pattern4\r
+      disk.write.bytes_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes_server_nested2_ps_1b\r
+      network.outgoing.bytes.rate_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.outgoing.bytes.rate_ps_server_main_1b_ps_server_main_1b_port\r
+      disk.ephemeral.size_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.ephemeral.size_server_nested2_1c1_cmaui_1\r
+      memory_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.outgoing.packets.rate_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.outgoing.packets.rate_ps_server_main_1b_ps_server_main_1b_port\r
+      network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      binding_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - binding_cmaui_1c1_main\r
+      network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outgoing.bytes_pd_server_pattern4_port_02\r
+      disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.read.bytes.rate_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes.rate_server_nested2_pd_1b\r
+      attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      cpu_util_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_util_server_nested2_ps_1b\r
+      instance_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - instance_ps_server_main_1b\r
+      network.outgoing.packets.rate_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_ps_server_nested2_1b_port\r
+      network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.device.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      memory.usage_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.usage_server_nested2_ps_1b\r
+      disk.capacity_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.capacity_server_nested2_1c1_cmaui_2\r
+      disk.write.requests_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests_server_nested2_1c1_cmaui_2\r
+      disk.device.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.allocation_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.allocation_pd_server_main_1b\r
+      endpoint_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - endpoint_cmaui_1c1_main\r
+      host_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - host_server_pd_pattern4\r
+      disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.usage_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.usage_cmaui_1c1_main\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.write.requests_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.write.requests_pd_server_main_1b\r
+      cpu_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - cpu_server_pd_pattern4\r
+      feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      host_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - host_pd_server_main_1b\r
+      feature_jsa_security_group2_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_jsa_security_group2_test_resourceGroup\r
+      memory.resident_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.resident_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.incoming.packets.rate_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_cmaui_port_1\r
+      cpu.delta_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - cpu.delta_ps_server_main_1b\r
+      binding_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - binding_server_pd_pattern4\r
+      cpu_util_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - cpu_util_ps_server_main_1b\r
+      disk.write.bytes_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.bytes_cmaui_1c1_main\r
+      network.incoming.bytes_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_pd_server_nested2_1b_port\r
+      disk.usage_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.usage_cmaui_1c1_main\r
+      network.incoming.packets.rate_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_cmaui_port_2\r
+      disk.device.write.bytes.rate_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.write.bytes.rate_ps_server_main_1b\r
+      cpu_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_server_nested2_ps_1b\r
+      binding_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - binding_pd_server_pattern4_port_02\r
+      forwarder_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.root.size_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.root.size_server_nested2_1c1_cmaui_1\r
+      forwarder_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - forwarder_ps_server_main_1b_ps_server_main_1b_port\r
+      binding_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - binding_ps_server_main_1b_ps_server_main_1b_port\r
+      feature_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - feature_pd_server_pattern4_port_01\r
+      network.outgoing.bytes.rate_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port\r
+      disk.read.bytes_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes_server_nested2_pd_1b\r
+      network.outgoing.bytes.rate_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outgoing.bytes.rate_cmaui_1c1_main_cmaui_port\r
+      network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      os_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - os_ps_server_main_1b\r
+      disk.device.read.bytes_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.read.bytes_pd_server_main_1b\r
+      attachment_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - attachment_ps_server_main_1b_ps_server_main_1b_port\r
+      cpu.delta_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu.delta_server_nested2_ps_1b\r
+      feature_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_ps_server_nested2_1b_port\r
+      disk.latency_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.latency_cmaui_1c1_main\r
+      disk.write.bytes_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.bytes_cmaui_1c1_main\r
+      disk.write.requests.rate_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests.rate_server_nested2_pd_1b\r
+      disk.device.read.bytes.rate_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.read.bytes.rate_pd_server_main_1b\r
+      network.outgoing.bytes_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_ps_server_nested2_1b_port\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      feature_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_server_nested2_1c1_cmaui_2\r
+      endpoint_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - endpoint_cmaui_1c1_main\r
+      network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.read.bytes.rate_server_pd_pattern4\r
+      disk.device.iops_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.iops_server_nested2_1c1_cmaui_1\r
+      feature_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - feature_ps_server_main_1b\r
+      network.outpoing.packets_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.outpoing.packets_ps_server_main_1b_ps_server_main_1b_port\r
+      disk.device.read.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests.rate_server_nested2_1c1_cmaui_1\r
+      disk.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.incoming.bytes.rate_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_pd_server_nested2_1b_port\r
+      binding_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_server_nested2_pd_1b\r
+      disk.latency_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.latency_cmaui_1c1_main\r
+      forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.root.size_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.root.size_server_pd_pattern4\r
+      binding_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_server_nested2_1c1_cmaui_2\r
+      network.outgoing.packets.rate_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_cmaui_port_1\r
+      disk.device.write.bytes_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.write.bytes_pd_server_main_1b\r
+      binding_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1\r
+      disk.ephemeral.size_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.ephemeral.size_ps_server_main_1b\r
+      disk.allocation_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.allocation_server_nested2_1c1_cmaui_1\r
+      disk.ephemeral.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.ephemeral.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.iops_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.iops_cmaui_1c1_main\r
+      network.outgoing.bytes_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_cmaui_port_2\r
+      forwarder_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_pd_server_nested2_1b_port\r
+      network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.read.bytes.rate_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.read.bytes.rate_ps_server_main_1b\r
+      disk.device.usage_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.usage_cmaui_1c1_main\r
+      disk.usage_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.usage_server_nested2_1c1_cmaui_2\r
+      disk.write.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes_server_nested2_1c1_cmaui_2\r
+      disk.device.read.bytes.rate_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.bytes.rate_cmaui_1c1_main\r
+      network.outgoing.bytes.rate_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_cmaui_port_2\r
+      disk.device.write.requests.rate_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.write.requests.rate_pd_server_main_1b\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.iops_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.iops_server_pd_pattern4\r
+      network.incoming.packets.rate_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.incoming.packets.rate_ps_server_main_1b_ps_server_main_1b_port\r
+      binding_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_cmaui_port_1\r
+      disk.device.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      memory.usage_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - memory.usage_pd_server_main_1b\r
+      disk.root.size_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.root.size_ps_server_main_1b\r
+      network.incoming.packets_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.incoming.packets_pd_server_main_1b_pd_server_main_1b_port\r
+      network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_02\r
+      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2\r
+      disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      scalable_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - scalable_cmaui_1c1_main\r
+      disk.device.read.requests.rate_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests.rate_server_nested2_ps_1b\r
+      disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.write.bytes.rate_server_pd_pattern4\r
+      disk.iops_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.iops_cmaui_1c1_main\r
+      os_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - os_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.usage_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.usage_server_nested2_1c1_cmaui_1\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_02\r
+      disk.capacity_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.capacity_pd_server_main_1b\r
+      disk.device.write.requests_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.requests_cmaui_1c1_main\r
+      disk.read.requests_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.read.requests_pd_server_main_1b\r
+      disk.allocation_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.allocation_server_nested2_1c1_cmaui_2\r
+      disk.read.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes_server_nested2_1c1_cmaui_1\r
+      network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.bytes_pd_server_pattern4_port_01\r
+      network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.iops_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.iops_server_nested2_1c1_cmaui_1\r
+      network.outgoing.bytes.rate_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_pd_server_nested2_1b_port\r
+      disk.write.requests_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests_server_nested2_ps_1b\r
+      disk.write.requests_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.write.requests_pd_server_main_1b\r
+      disk.device.write.requests.rate_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests.rate_server_nested2_ps_1b\r
+      instance_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - instance_server_nested2_1c1_cmaui_2\r
+      network.outpoing.packets_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_pd_server_nested2_1b_port\r
+      disk.latency_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.latency_ps_server_main_1b\r
+      os_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - os_server_nested2_pd_1b\r
+      disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.read.bytes_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.read.bytes_pd_server_main_1b\r
+      disk.write.requests_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.write.requests_server_pd_pattern4\r
+      disk.device.read.bytes.rate_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes.rate_server_nested2_pd_1b\r
+      cpu_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.write.requests.rate_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.write.requests.rate_ps_server_main_1b\r
+      disk.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.latency_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.latency_server_nested2_1c1_cmaui_2\r
+      network.incoming.bytes_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_ps_server_nested2_1b_port\r
+      feature_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - feature_pd_server_pattern4_port_02\r
+      network.outgoing.packets.rate_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_cmaui_port_2\r
+      network.outgoing.bytes_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outgoing.bytes_cmaui_1c1_main_cmaui_port\r
+      endpoint_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - endpoint_pd_server_main_1b\r
+      disk.allocation_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.allocation_cmaui_1c1_main\r
+      disk.device.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.outgoing.bytes_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outgoing.bytes_cmaui_1c1_main_cmaui_port\r
+      vcpus_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - vcpus_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.write.bytes_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes_server_nested2_pd_1b\r
+      network.incoming.packets.rate_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_ps_server_nested2_1b_port\r
+      network.incoming.packets.rate_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_pd_server_nested2_1b_port\r
+      endpoint_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - endpoint_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1\r
+      cpu.delta_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - cpu.delta_server_pd_pattern4\r
+      disk.write.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes_server_nested2_1c1_cmaui_1\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      feature_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      scalable_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - scalable_server_nested2_pd_1b\r
+      network.incoming.packets_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.incoming.packets_ps_server_main_1b_ps_server_main_1b_port\r
+      binding_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      network.incoming.packets.rate_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.incoming.packets.rate_pd_server_main_1b_pd_server_main_1b_port\r
+      forwarder_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_ps_server_nested2_1b_port\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.device.usage_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.usage_cmaui_1c1_main\r
+      disk.capacity_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.capacity_server_nested2_ps_1b\r
+      binding_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.root.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.root.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      host_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - host_ps_server_main_1b\r
+      disk.root.size_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.root.size_pd_server_main_1b\r
+      memory.usage_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - memory.usage_ps_server_main_1b\r
+      network.outpoing.packets_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_ps_server_nested2_1b_port\r
+      instance_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - instance_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      os_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - os_server_nested2_ps_1b\r
+      scalable_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - scalable_ps_server_main_1b\r
+      disk.device.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.capacity_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.capacity_cmaui_1c1_main\r
+      disk.device.read.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests.rate_server_nested2_1c1_cmaui_2\r
+      host_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - host_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      memory.resident_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - memory.resident_ps_server_main_1b\r
+      os_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - os_pd_server_main_1b\r
+      disk.device.read.bytes_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.bytes_cmaui_1c1_main\r
+      disk.latency_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.latency_server_nested2_ps_1b\r
+      disk.root.size_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.root.size_server_nested2_1c1_cmaui_2\r
+      binding_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outgoing.bytes_pd_server_pattern4_port_01\r
+      memory.resident_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.resident_server_nested2_1c1_cmaui_1\r
+      vcpus_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - vcpus_server_nested2_ps_1b\r
+      disk.device.iops_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.iops_server_nested2_1c1_cmaui_2\r
+      network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.write.requests_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.write.requests_ps_server_main_1b\r
+      forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - forwarder_pd_server_pattern4_port_02\r
+      memory_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.allocation_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.allocation_cmaui_1c1_main\r
+      feature_jsa_security_group1_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_jsa_security_group1_test_nested3Level\r
+      disk.device.read.requests_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.read.requests_ps_server_main_1b\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.device.read.bytes_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.bytes_cmaui_1c1_main\r
+      disk.capacity_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.capacity_server_nested2_1c1_cmaui_1\r
+      disk.write.requests.rate_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.requests.rate_cmaui_1c1_main\r
+      disk.device.read.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.allocation_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.allocation_cmaui_1c1_main\r
+      disk.device.read.bytes_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes_server_nested2_pd_1b\r
+      disk.device.allocation_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.allocation_cmaui_1c1_main\r
+      disk.capacity_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.capacity_ps_server_main_1b\r
+      binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.read.requests_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.requests_server_nested2_ps_1b\r
+      cpu.delta_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu.delta_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.read.bytes_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes_server_nested2_ps_1b\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      scalable_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - scalable_server_pd_pattern4\r
+      disk.device.latency_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.latency_server_pd_pattern4\r
+      disk.write.requests.rate_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.requests.rate_cmaui_1c1_main\r
+      scalable_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - scalable_cmaui_1c1_main\r
+      disk.read.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes.rate_server_nested2_1c1_cmaui_2\r
+      disk.device.write.requests_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.requests_cmaui_1c1_main\r
+      disk.device.write.requests_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests_server_nested2_1c1_cmaui_1\r
+      instance_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - instance_server_pd_pattern4\r
+      disk.allocation_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.allocation_server_nested2_pd_1b\r
+      feature_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - feature_cmaui_1c1_main\r
+      forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - forwarder_pd_server_pattern4_port_01\r
+      disk.device.read.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes_server_nested2_1c1_cmaui_2\r
+      disk.device.capacity_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.capacity_cmaui_1c1_main\r
+      scalable_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - scalable_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.write.bytes.rate_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.write.bytes.rate_pd_server_main_1b\r
+      feature_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_test_nested3Level\r
+      disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.iops_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.iops_pd_server_main_1b\r
+      disk.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.ephemeral.size_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.ephemeral.size_server_nested2_1c1_cmaui_2\r
+      feature_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - feature_pd_server_main_1b\r
+      network.incoming.bytes_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.bytes_cmaui_1c1_main_cmaui_port\r
+      network.incoming.bytes_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.bytes_cmaui_1c1_main_cmaui_port\r
+      scalable_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - scalable_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      forwarder_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_cmaui_port_1\r
+      disk.latency_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.latency_server_nested2_pd_1b\r
+      memory.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      cpu.delta_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - cpu.delta_cmaui_1c1_main\r
+      disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.write.requests.rate_server_pd_pattern4\r
+      disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.write.requests_server_pd_pattern4\r
+      disk.device.write.bytes_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.bytes_cmaui_1c1_main\r
+      disk.write.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests.rate_server_nested2_1c1_cmaui_2\r
+      cpu_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_server_nested2_pd_1b\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_01\r
+      disk.device.allocation_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.allocation_server_nested2_1c1_cmaui_2\r
+      disk.device.allocation_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.allocation_pd_server_main_1b\r
+      disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.read.bytes_server_pd_pattern4\r
+      vcpus_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - vcpus_server_nested2_pd_1b\r
+      disk.device.usage_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.usage_server_nested2_1c1_cmaui_1\r
+      network.incoming.bytes_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_cmaui_port_1\r
+      disk.device.latency_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.latency_cmaui_1c1_main\r
+      disk.device.allocation_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.allocation_server_nested2_1c1_cmaui_1\r
+      vcpus_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - vcpus_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      cpu_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - cpu_cmaui_1c1_main\r
+      endpoint_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - endpoint_server_nested2_1c1_cmaui_2\r
+      disk.write.bytes.rate_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.write.bytes.rate_ps_server_main_1b\r
+      disk.device.read.requests.rate_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.read.requests.rate_pd_server_main_1b\r
+      feature_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - feature\r
+      memory.usage_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.usage_server_nested2_pd_1b\r
+      disk.device.write.bytes_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes_server_nested2_pd_1b\r
+      disk.device.capacity_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.capacity_ps_server_main_1b\r
+      network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_01\r
+      disk.device.write.bytes_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.bytes_cmaui_1c1_main\r
+      network.incoming.bytes_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_cmaui_port_2\r
+      binding_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - binding_pd_server_main_1b_pd_server_main_1b_port\r
+      disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.write.bytes_server_pd_pattern4\r
+      disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      memory.resident_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - memory.resident_pd_server_main_1b\r
+      network.incoming.bytes_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.incoming.bytes_ps_server_main_1b_ps_server_main_1b_port\r
+      vcpus_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - vcpus_server_nested2_1c1_cmaui_1\r
+      disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.device.read.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes_server_nested2_1c1_cmaui_1\r
+      disk.read.bytes.rate_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes.rate_server_nested2_ps_1b\r
+      endpoint_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - endpoint_server_nested2_1c1_cmaui_1\r
+      attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.iops_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.iops_server_pd_pattern4\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.device.read.requests_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests_server_nested2_pd_1b\r
+      attachment_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - attachment_pd_server_pattern4_port_02\r
+      memory.resident_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - memory.resident_server_pd_pattern4\r
+      feature_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - feature_pd_server_main_1b_pd_server_main_1b_port\r
+      host_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - host_cmaui_1c1_main\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.ephemeral.size_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.ephemeral.size_server_nested2_ps_1b\r
+      disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.outgoing.bytes_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_pd_server_nested2_1b_port\r
+      network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      disk.device.write.bytes.rate_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes.rate_server_nested2_ps_1b\r
+      disk.device.usage_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.usage_ps_server_main_1b\r
+      network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.capacity_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.capacity_server_nested2_1c1_cmaui_2\r
+      disk.device.write.requests_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests_server_nested2_pd_1b\r
+      forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      disk.device.usage_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.usage_server_nested2_1c1_cmaui_2\r
+      disk.write.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests.rate_server_nested2_1c1_cmaui_1\r
+      network.incoming.bytes.rate_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_cmaui_port_2\r
+      disk.device.latency_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.latency_cmaui_1c1_main\r
+      disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.incoming.packets.rate_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.packets.rate_cmaui_1c1_main_cmaui_port\r
+      network.incoming.packets.rate_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.packets.rate_cmaui_1c1_main_cmaui_port\r
+      disk.device.read.requests.rate_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests.rate_server_nested2_pd_1b\r
+      disk.device.allocation_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.allocation_ps_server_main_1b\r
+      vcpus_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - vcpus_cmaui_1c1_main\r
+      attachment_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - attachment_pd_server_main_1b_pd_server_main_1b_port\r
+      disk.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.incoming.bytes.rate_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_cmaui_port_1\r
+      os_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - os_server_nested2_1c1_cmaui_2\r
+      disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      memory.resident_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - memory.resident_cmaui_1c1_main\r
+      network.incoming.packets_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_pd_server_nested2_1b_port\r
+      disk.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.outpoing.packets_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outpoing.packets_cmaui_1c1_main_cmaui_port\r
+      binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      network.outpoing.packets_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outpoing.packets_cmaui_1c1_main_cmaui_port\r
+      disk.usage_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.usage_server_pd_pattern4\r
+      memory.resident_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.resident_server_nested2_1c1_cmaui_2\r
+      disk.capacity_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.capacity_server_nested2_pd_1b\r
+      disk.ephemeral.size_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.ephemeral.size_cmaui_1c1_main\r
+      cpu_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      binding_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - binding_pd_server_main_1b\r
+      memory.resident_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - memory.resident_cmaui_1c1_main\r
+      disk.device.read.requests.rate_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.requests.rate_cmaui_1c1_main\r
+      disk.device.capacity_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.capacity_pd_server_main_1b\r
+      disk.read.bytes_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.read.bytes_cmaui_1c1_main\r
+      os_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - os_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.device.read.requests_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests_server_nested2_1c1_cmaui_1\r
+      host_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - host_server_nested2_ps_1b\r
+      host_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - host_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      cpu_util_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_util_server_nested2_1c1_cmaui_1\r
+      network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.root.size_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.root.size_cmaui_1c1_main\r
+      disk.usage_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.usage_ps_server_main_1b\r
+      cpu_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - cpu_pd_server_main_1b\r
+      disk.read.requests_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.read.requests_cmaui_1c1_main\r
+      memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.outgoing.packets.rate_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_pd_server_nested2_1b_port\r
+      disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.read.requests.rate_server_pd_pattern4\r
+      disk.ephemeral.size_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.ephemeral.size_cmaui_1c1_main\r
+      host_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - host_cmaui_1c1_main\r
+      disk.device.iops_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.iops_cmaui_1c1_main\r
+      disk.device.latency_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.latency_server_nested2_ps_1b\r
+      disk.device.read.requests_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests_server_nested2_1c1_cmaui_2\r
+      cpu_util_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_util_server_nested2_1c1_cmaui_2\r
+      instance_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - instance_cmaui_1c1_main\r
+      memory_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory_server_nested2_1c1_cmaui_2\r
+      disk.device.read.requests.rate_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.read.requests.rate_ps_server_main_1b\r
+      disk.device.read.requests.rate_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.requests.rate_cmaui_1c1_main\r
+      disk.read.bytes_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.read.bytes_cmaui_1c1_main\r
+      network.outpoing.packets_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.outpoing.packets_pd_server_main_1b_pd_server_main_1b_port\r
+      disk.write.bytes.rate_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes.rate_server_nested2_pd_1b\r
+      disk.root.size_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.root.size_server_nested2_pd_1b\r
+      endpoint_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - endpoint_server_nested2_ps_1b\r
+      attachment_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.packets_pd_server_pattern4_port_01\r
+      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2\r
+      disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.capacity_server_pd_pattern4\r
+      disk.device.read.bytes.rate_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes.rate_server_nested2_ps_1b\r
+      feature_jsa_security_group1_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_jsa_security_group1_test_resourceGroup\r
+      disk.device.usage_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.usage_server_nested2_ps_1b\r
+      disk.ephemeral.size_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.ephemeral.size_pd_server_main_1b\r
+      disk.root.size_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.root.size_cmaui_1c1_main\r
+      disk.iops_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.iops_server_nested2_1c1_cmaui_2\r
+      memory_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - memory_server_pd_pattern4\r
+      feature_jsa_security_group2_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_jsa_security_group2_test_nested3Level\r
+      network.incoming.bytes.rate_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes.rate_ps_server_nested2_1b_port\r
+      disk.allocation_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.allocation_server_pd_pattern4\r
+      cpu_util_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - cpu_util_cmaui_1c1_main\r
+      disk.device.write.requests.rate_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.requests.rate_cmaui_1c1_main\r
+      network.outgoing.bytes.rate_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.outgoing.bytes.rate_pd_server_main_1b_pd_server_main_1b_port\r
+      instance_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - instance_cmaui_1c1_main\r
+      network.outgoing.packets.rate_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.outgoing.packets.rate_pd_server_main_1b_pd_server_main_1b_port\r
+      disk.device.iops_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.iops_cmaui_1c1_main\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_01\r
+      network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      forwarder_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - forwarder_pd_server_main_1b_pd_server_main_1b_port\r
+      network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.incoming.packets_pd_server_pattern4_port_02\r
+      disk.write.requests.rate_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.write.requests.rate_ps_server_main_1b\r
+      disk.allocation_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.allocation_server_nested2_ps_1b\r
+      feature_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      network.outpoing.packets_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_cmaui_port_2\r
+      cpu.delta_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - cpu.delta_cmaui_1c1_main\r
+      network.outgoing.bytes_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes_cmaui_port_1\r
+      feature_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_server_nested2_ps_1b\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_01\r
+      network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      vcpus_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - vcpus_server_nested2_1c1_cmaui_2\r
+      disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.device.read.bytes.rate_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.read.bytes.rate_cmaui_1c1_main\r
+      disk.device.write.requests.rate_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.requests.rate_cmaui_1c1_main\r
+      disk.iops_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.iops_ps_server_main_1b\r
+      disk.device.iops_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.iops_server_nested2_pd_1b\r
+      endpoint_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - endpoint_server_pd_pattern4\r
+      cpu_util_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - cpu_util_cmaui_1c1_main\r
+      disk.device.allocation_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.allocation_server_nested2_pd_1b\r
+      disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.outgoing.bytes.rate_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_ps_server_nested2_1b_port\r
+      binding_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - binding_pd_server_pattern4_port_01\r
+      network.incoming.packets_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.packets_cmaui_1c1_main_cmaui_port\r
+      network.incoming.packets_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.packets_cmaui_1c1_main_cmaui_port\r
+      network.incoming.bytes.rate_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.incoming.bytes.rate_ps_server_main_1b_ps_server_main_1b_port\r
+      disk.device.latency_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.latency_server_nested2_1c1_cmaui_1\r
+      cpu_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - cpu_cmaui_1c1_main\r
+      disk.write.bytes.rate_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes.rate_server_nested2_1c1_cmaui_2\r
+      network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - network.outpoing.packets_pd_server_pattern4_port_02\r
+      vcpus_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - vcpus_server_pd_pattern4\r
+      host_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - host_server_nested2_1c1_cmaui_1\r
+      disk.write.requests_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.requests_cmaui_1c1_main\r
+      memory.usage_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - memory.usage_cmaui_1c1_main\r
+      memory_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory_server_nested2_ps_1b\r
+      endpoint_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - endpoint_ps_server_main_1b\r
+      network.outpoing.packets_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_cmaui_port_1\r
+      feature_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.iops_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.iops_server_nested2_pd_1b\r
+      disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.read.bytes.rate_server_pd_pattern4\r
+      disk.capacity_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.capacity_cmaui_1c1_main\r
+      instance_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - instance_server_nested2_ps_1b\r
+      disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.read.requests_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.read.requests_ps_server_main_1b\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      disk.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      network.outgoing.bytes_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - network.outgoing.bytes_ps_server_main_1b_ps_server_main_1b_port\r
+      disk.device.iops_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.iops_server_nested2_ps_1b\r
+      disk.read.requests_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.requests_server_nested2_pd_1b\r
+      cpu.delta_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - cpu.delta_pd_server_main_1b\r
+      disk.capacity_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.capacity_server_pd_pattern4\r
+      network.outgoing.bytes_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.outgoing.bytes_pd_server_main_1b_pd_server_main_1b_port\r
+      instance_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - instance_server_nested2_1c1_cmaui_1\r
+      feature_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_test_nested_pattern_4_nested2\r
+      memory_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - memory_cmaui_1c1_main\r
+      disk.write.bytes_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.write.bytes_ps_server_main_1b\r
+      disk.write.requests.rate_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.write.requests.rate_pd_server_main_1b\r
+      cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      attachment_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_cmaui_port_1\r
+      binding_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - binding_ps_server_main_1b\r
+      disk.capacity_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.capacity_cmaui_1c1_main\r
+      disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.write.requests.rate_server_pd_pattern4\r
+      os_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - os_cmaui_1c1_main\r
+      disk.write.bytes.rate_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes.rate_server_nested2_1c1_cmaui_1\r
+      host_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - host_server_nested2_1c1_cmaui_2\r
+      disk.read.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.bytes_server_nested2_1c1_cmaui_2\r
+      disk.device.write.requests.rate_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests.rate_server_nested2_1c1_cmaui_1\r
+      network.outgoing.bytes.rate_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_cmaui_port_1\r
+      disk.device.iops_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.iops_ps_server_main_1b\r
+      disk.write.bytes_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.write.bytes_pd_server_main_1b\r
+      disk.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      binding_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_server_nested2_1c1_cmaui_1\r
+      memory_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - memory_cmaui_1c1_main\r
+      attachment_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - attachment_pd_server_pattern4_port_01\r
+      disk.write.bytes.rate_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.bytes.rate_server_nested2_ps_1b\r
+      disk.device.write.bytes_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes_server_nested2_1c1_cmaui_1\r
+      feature_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_server_nested2_1c1_cmaui_1\r
+      disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.read.bytes.rate_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.read.bytes.rate_cmaui_1c1_main\r
+      attachment_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_cmaui_port_2\r
+      disk.device.write.bytes.rate_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.bytes.rate_cmaui_1c1_main\r
+      endpoint_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - endpoint_server_nested2_pd_1b\r
+      memory_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - memory_pd_server_main_1b\r
+      network.incoming.bytes.rate_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - network.incoming.bytes.rate_pd_server_main_1b_pd_server_main_1b_port\r
+      disk.device.read.requests_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.read.requests_pd_server_main_1b\r
+      disk.read.requests_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.read.requests_cmaui_1c1_main\r
+      disk.device.capacity_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.capacity_server_nested2_pd_1b\r
+      feature_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - feature_cmaui_1c1_main_cmaui_port\r
+      feature_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - feature_cmaui_1c1_main_cmaui_port\r
+      network.incoming.bytes.rate_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port\r
+      network.incoming.bytes.rate_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port\r
+      disk.device.iops_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.iops_pd_server_main_1b\r
+      os_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - os_cmaui_1c1_main\r
+      disk.latency_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.latency_server_pd_pattern4\r
+      memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      attachment_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_pd_server_nested2_1b_port\r
+      disk.device.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      feature_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_cmaui_port_2\r
+      disk.device.write.bytes_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes_server_nested2_ps_1b\r
+      cpu_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - cpu_ps_server_main_1b\r
+      scalable_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - scalable_pd_server_main_1b\r
+      memory.usage_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.usage_server_nested2_1c1_cmaui_2\r
+      memory.usage_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - memory.usage_cmaui_1c1_main\r
+      disk.read.bytes.rate_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.read.bytes.rate_cmaui_1c1_main\r
+      network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.write.requests_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.requests_cmaui_1c1_main\r
+      disk.device.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      cpu_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_server_nested2_1c1_cmaui_1\r
+      disk.usage_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.usage_server_nested2_pd_1b\r
+      disk.device.read.bytes_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes_server_nested2_ps_1b\r
+      disk.device.write.bytes.rate_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.device.write.bytes.rate_cmaui_1c1_main\r
+      feature_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_pd_server_nested2_1b_port\r
+      network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      binding_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_cmaui_port_2\r
+      memory_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - memory_ps_server_main_1b\r
+      disk.read.bytes_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.read.bytes_ps_server_main_1b\r
+      vcpus_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - vcpus_ps_server_main_1b\r
+      instance_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - instance_server_nested2_pd_1b\r
+      disk.device.read.bytes_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.read.bytes_ps_server_main_1b\r
+      disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.read.requests_server_pd_pattern4\r
+      disk.write.bytes.rate_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.bytes.rate_cmaui_1c1_main\r
+      network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      feature_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - feature_server_pd_pattern4\r
+      scalable_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - scalable_server_nested2_1c1_cmaui_2\r
+      disk.device.usage_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.device.usage_pd_server_main_1b\r
+      memory_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory_server_nested2_pd_1b\r
+      binding_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_pd_server_nested2_1b_port\r
+      feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.write.bytes_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.write.bytes_ps_server_main_1b\r
+      vcpus_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - vcpus_cmaui_1c1_main\r
+      network.incoming.packets_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_ps_server_nested2_1b_port\r
+      disk.device.usage_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.usage_server_pd_pattern4\r
+      cpu_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_server_nested2_1c1_cmaui_2\r
+      disk.write.requests_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests_server_nested2_pd_1b\r
+      memory.usage_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - memory.usage_server_pd_pattern4\r
+      disk.device.write.requests.rate_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests.rate_server_nested2_pd_1b\r
+      disk.usage_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.usage_pd_server_main_1b\r
+      disk.write.bytes.rate_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - disk.write.bytes.rate_cmaui_1c1_main\r
+      binding_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_ps_server_nested2_1b_port\r
+      cpu_util_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu_util_server_nested2_pd_1b\r
+      scalable_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - scalable_server_nested2_ps_1b\r
+      disk.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      memory_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory_server_nested2_1c1_cmaui_1\r
+      network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.write.requests.rate_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.requests.rate_server_nested2_1c1_cmaui_2\r
+      scalable_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - scalable_server_nested2_1c1_cmaui_1\r
+      disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.write.bytes_server_pd_pattern4\r
+      disk.iops_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.iops_server_nested2_ps_1b\r
+      memory.resident_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.resident_server_nested2_ps_1b\r
+      cpu.delta_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu.delta_server_nested2_pd_1b\r
+      memory.usage_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - memory.usage_server_nested2_1c1_cmaui_1\r
+      forwarder_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - forwarder_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.allocation_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.allocation_server_nested2_ps_1b\r
+      attachment_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - attachment_ps_server_nested2_1b_port\r
+      disk.read.requests_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.read.requests_server_nested2_1c1_cmaui_1\r
+      disk.device.write.requests_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.device.write.requests_ps_server_main_1b\r
+      disk.allocation_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - disk.allocation_ps_server_main_1b\r
+      disk.latency_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - disk.latency_pd_server_main_1b\r
+      disk.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      disk.device.capacity_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.capacity_server_nested2_1c1_cmaui_1\r
+      disk.device.write.bytes_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.write.bytes_server_nested2_1c1_cmaui_2\r
+      disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - disk.device.write.bytes.rate_server_pd_pattern4\r
+      disk.device.latency_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.latency_server_nested2_pd_1b\r
+      endpoint_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - endpoint_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      disk.write.requests_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests_server_nested2_1c1_cmaui_1\r
+      disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      network.outgoing.packets.rate_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port\r
+      binding_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - binding_cmaui_1c1_main_cmaui_port\r
+      network.outgoing.packets.rate_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - network.outgoing.packets.rate_cmaui_1c1_main_cmaui_port\r
+      binding_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - binding_cmaui_1c1_main_cmaui_port\r
+      network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      os_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - os_server_nested2_1c1_cmaui_1\r
+      binding_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - binding_server_nested2_ps_1b\r
+      disk.write.requests.rate_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.write.requests.rate_server_nested2_ps_1b\r
+      attachment_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - attachment_cmaui_1c1_main_cmaui_port\r
+      attachment_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - attachment_cmaui_1c1_main_cmaui_port\r
+      feature_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_test_resourceGroup\r
+      disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      feature_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - feature_cmaui_port_1\r
+      disk.device.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.device.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      cpu.delta_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - cpu.delta_server_nested2_1c1_cmaui_1\r
+      network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      network.incoming.packets_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - network.incoming.packets_cmaui_port_1\r
+      disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2\r
+    requirements:\r
+      dependency_jsa_security_group2_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_jsa_security_group2_test_resourceGroup\r
+      link_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - link_pd_server_pattern4_port_01\r
+      dependency_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_cmaui_port_2\r
+      dependency_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_server_nested2_1c1_cmaui_1\r
+      port_jsa_security_group1_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - port_jsa_security_group1_test_nested3Level\r
+      link_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - link_pd_server_pattern4_port_02\r
+      dependency_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency\r
+      dependency_pd_server_pattern4_port_02_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - dependency_pd_server_pattern4_port_02\r
+      local_storage_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - local_storage_ps_server_main_1b\r
+      dependency_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - dependency_cmaui_1c1_main_cmaui_port\r
+      dependency_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - dependency_pd_server_main_1b\r
+      dependency_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - dependency_cmaui_1c1_main\r
+      dependency_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - dependency_cmaui_1c1_main_cmaui_port\r
+      dependency_pd_server_pattern4_port_01_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - dependency_pd_server_pattern4_port_01\r
+      local_storage_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - local_storage_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      local_storage_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - local_storage_server_nested2_1c1_cmaui_2\r
+      local_storage_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - local_storage_server_nested2_pd_1b\r
+      local_storage_server_nested2_1c1_cmaui_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - local_storage_server_nested2_1c1_cmaui_1\r
+      local_storage_server_main_pd_1b_1:\r
+      - abstract_pd_server_main_1b\r
+      - local_storage_pd_server_main_1b\r
+      dependency_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_test_resourceGroup\r
+      link_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      dependency_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_pd_server_nested2_1b_port\r
+      dependency_server_nested2_1c1_cmaui_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_server_nested2_1c1_cmaui_2\r
+      link_pd_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_pd_server_nested2_1b_port\r
+      dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      dependency_server_pd_pattern4_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_server_pd_pattern4_test_nested_pattern_4_nested2\r
+      dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      local_storage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - local_storage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      link_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      dependency_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_cmaui_port_1\r
+      local_storage_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - local_storage_server_pd_pattern4\r
+      dependency_server_main_ps_1b_1:\r
+      - abstract_ps_server_main_1b\r
+      - dependency_ps_server_main_1b\r
+      dependency_server_nested2_pd_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_server_nested2_pd_1b\r
+      dependency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file\r
+      dependency_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_server_nested2_ps_1b\r
+      dependency_jsa_security_group1_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_jsa_security_group1_test_nested3Level\r
+      link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file\r
+      local_storage_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - local_storage_cmaui_1c1_main\r
+      dependency_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - dependency_pd_server_main_1b_pd_server_main_1b_port\r
+      link_cmaui_port_11:\r
+      - abstract_cmaui_1c1_main\r
+      - link_cmaui_1c1_main_cmaui_port\r
+      dependency_pd_server_pattern4_port_01_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_pd_server_pattern4_port_01_test_nested_pattern_4_nested2\r
+      link_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - link_ps_server_main_1b_ps_server_main_1b_port\r
+      dependency_jsa_security_group1_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_jsa_security_group1_test_resourceGroup\r
+      dependency_pd_server_pattern4_port_02_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_pd_server_pattern4_port_02_test_nested_pattern_4_nested2\r
+      link_cmaui_port_2_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_cmaui_port_2\r
+      link_cmaui_port_12:\r
+      - abstract_cmaui_1c1_main\r
+      - link_cmaui_1c1_main_cmaui_port\r
+      dependency_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_test_nested_pattern_4_same_type_diff_file\r
+      link_pd_server_main_1b_port_1:\r
+      - abstract_pd_server_main_1b\r
+      - link_pd_server_main_1b_pd_server_main_1b_port\r
+      link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file\r
+      port_jsa_security_group2_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - port_jsa_security_group2_test_resourceGroup\r
+      port_jsa_security_group2_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - port_jsa_security_group2_test_nested3Level\r
+      dependency_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - dependency\r
+      dependency_jsa_security_group2_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_jsa_security_group2_test_nested3Level\r
+      dependency_server_pd_pattern4_test_nested_pattern_4_main_1:\r
+      - test_nested_pattern_4_main_1\r
+      - dependency_server_pd_pattern4\r
+      link_cmaui_port_1_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_cmaui_port_1\r
+      local_storage_server_main_1c1_cmaui_21:\r
+      - abstract_cmaui_1c1_main\r
+      - local_storage_cmaui_1c1_main\r
+      local_storage_server_nested2_ps_1b_test_nested2Level:\r
+      - test_nested2Level\r
+      - local_storage_server_nested2_ps_1b\r
+      dependency_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_ps_server_nested2_1b_port\r
+      link_ps_server_nested2_1b_port_test_nested2Level:\r
+      - test_nested2Level\r
+      - link_ps_server_nested2_1b_port\r
+      dependency_server_main_1c1_cmaui_11:\r
+      - abstract_cmaui_1c1_main\r
+      - dependency_cmaui_1c1_main\r
+      dependency_ps_server_main_1b_port_1:\r
+      - abstract_ps_server_main_1b\r
+      - dependency_ps_server_main_1b_ps_server_main_1b_port\r
+      port_jsa_security_group1_test_resourceGroup_test_nested2Level:\r
+      - test_nested2Level\r
+      - port_jsa_security_group1_test_resourceGroup\r
+      dependency_test_nested_pattern_4_nested2_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_test_nested_pattern_4_nested2\r
+      dependency_test_nested3Level_test_nested2Level:\r
+      - test_nested2Level\r
+      - dependency_test_nested3Level\r
\ No newline at end of file
index 6b6efc2..f2d584a 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: nested2
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    cmaui_1c1_nested2_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    cmaui_1c1_nested2_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    ps_server_nested2_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: security_group_name
-    pd_server_nested2_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PD server
-    contrail_net_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of contrail v2 network
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of jsa network
-    ps_server_nested2_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: Ps server names
-      entry_schema:
-        type: string
-    pd_server_nested2_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    jsa_name:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of jsa log network
-    cmaui_1c1_nested2_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    ps_server_nested2_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PS server
-    pd_server_nested2_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: PD server names
-      entry_schema:
-        type: string
-    name:
-      hidden: false
-      immutable: false
-      type: string
-      description: nested parameter
-    pd_server_nested2_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: PD Image server
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      type: string
-      description: availabilityzone name
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      type: string
-    ps_server_nested2_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Ps Image server
-  node_templates:
-    abstract_pd_server_nested2_1b:
-      type: org.openecomp.resource.abstract.nodes.pd_server_nested2_1b
-      directives:
-      - substitutable
-      properties:
-        port_pd_server_nested2_1b_port_replacement_policy:
-        - AUTO
-        port_pd_server_nested2_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - pd_server_nested2_1b_ips
-            - 0
-        port_pd_server_nested2_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_flavor_name:
-          get_input: pd_server_nested2_1b_flavor
-        compute_pd_server_nested2_1b_availability_zone:
-        - get_input: availability_zone_0
-        compute_pd_server_nested2_1b_name:
-        - get_input:
-          - pd_server_nested2_1b_names
-          - 0
-        vm_image_name:
-          get_input: pd_server_nested2_1b_image
-        port_pd_server_nested2_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_nested2_1b_port_network:
-        - get_input: jsa_name
-        service_template_filter:
-          substitute_service_template: Nested_pd_server_nested2_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    test_nested_pattern_4_nested2:
-      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
-      directives:
-      - substitutable
-      properties:
-        p1:
-          get_input: jsa_name
-        service_template_filter:
-          substitute_service_template: nested-pattern-4ServiceTemplate.yaml
-        port_pd_server_pattern4_port_01_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_02_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_02_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_01_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-    test_nested3Level:
-      type: org.openecomp.resource.abstract.nodes.heat.nested3
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested3ServiceTemplate.yaml
-        name:
-          get_input: security_group_name
-    test_nested_pattern_4_same_type_diff_file:
-      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4_2
-      directives:
-      - substitutable
-      properties:
-        p1:
-          get_input: jsa_name
-        service_template_filter:
-          substitute_service_template: nested-pattern-4-same-typeServiceTemplate.yaml
-        port_pd_server_pattern4_port_1_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_2_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_1_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_pattern4_port_2_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-    abstract_ps_server_nested2_1b:
-      type: org.openecomp.resource.abstract.nodes.ps_server_nested2_1b
-      directives:
-      - substitutable
-      properties:
-        port_ps_server_nested2_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_ps_server_nested2_1b_name:
-        - get_input:
-          - ps_server_nested2_1b_names
-          - 1
-        compute_ps_server_nested2_1b_availability_zone:
-        - get_input: availability_zone_0
-        port_ps_server_nested2_1b_port_replacement_policy:
-        - AUTO
-        vm_flavor_name:
-          get_input: ps_server_nested2_1b_flavor
-        port_ps_server_nested2_1b_port_network:
-        - get_input: jsa_name
-        vm_image_name:
-          get_input: ps_server_nested2_1b_image
-        port_ps_server_nested2_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - ps_server_nested2_1b_ips
-            - 0
-        port_ps_server_nested2_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_ps_server_nested2_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    test_resourceGroup:
-      type: org.openecomp.resource.abstract.nodes.heat.nested3
-      directives:
-      - substitutable
-      properties:
-        p1:
-          get_input: name
-        service_template_filter:
-          substitute_service_template: nested3ServiceTemplate.yaml
-          count: 9
-          mandatory: true
-        indx:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_cmaui_1c1_nested2:
-      type: org.openecomp.resource.abstract.nodes.cmaui_1c1_nested2
-      directives:
-      - substitutable
-      properties:
-        port_cmaui_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        port_cmaui_port_network:
-        - get_input: contrail_net_name
-        port_cmaui_port_network_role_tag: contrail
-        vm_flavor_name:
-          get_input: cmaui_1c1_nested2_flavor
-        port_cmaui_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_cmaui_port_replacement_policy:
-        - AUTO
-        vm_image_name:
-          get_input: cmaui_1c1_nested2_image
-        port_cmaui_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_cmaui_1c1_nested2_name:
-        - get_input:
-          - cmaui_1c1_nested2_names
-          - 1
-        - get_input:
-          - cmaui_1c1_nested2_names
-          - 0
-        compute_cmaui_1c1_nested2_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        service_template_filter:
-          substitute_service_template: Nested_cmaui_1c1_nested2ServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    nested2_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/nested2.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-      members:
-      - test_resourceGroup
-      - test_nested_pattern_4_nested2
-      - test_nested3Level
-      - test_nested_pattern_4_same_type_diff_file
-      - abstract_cmaui_1c1_nested2
-      - abstract_pd_server_nested2_1b
-      - abstract_ps_server_nested2_1b
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.nested2
-    capabilities:
-      instance_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - instance_cmaui_1c1_nested2
-      disk.allocation_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.allocation_ps_server_nested2_1b
-      scalable_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - scalable_server_pd_pattern4_1
-      network.incoming.packets.rate_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.incoming.packets.rate_pd_server_nested2_1b_pd_server_nested2_1b_port
-      os_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - os_pd_server_nested2_1b
-      disk.device.usage_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.usage_pd_server_nested2_1b
-      disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.write.bytes_server_pd_pattern4
-      vcpus_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - vcpus_pd_server_nested2_1b
-      memory.usage_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - memory.usage_cmaui_1c1_nested2
-      disk.device.latency_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.latency_cmaui_1c1_nested2
-      memory.usage_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - memory.usage_cmaui_1c1_nested2
-      instance_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - instance_cmaui_1c1_nested2
-      disk.device.latency_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.latency_cmaui_1c1_nested2
-      forwarder_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - forwarder_pd_server_pattern4_port_2
-      disk.iops_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.iops_ps_server_nested2_1b
-      disk.read.bytes_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.read.bytes_pd_server_nested2_1b
-      network.outgoing.packets.rate_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.outgoing.packets.rate_ps_server_nested2_1b_ps_server_nested2_1b_port
-      memory.resident_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - memory.resident_ps_server_nested2_1b
-      network.outpoing.packets_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.outpoing.packets_pd_server_nested2_1b_pd_server_nested2_1b_port
-      disk.device.read.bytes_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.bytes_cmaui_1c1_nested2
-      disk.device.read.bytes_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.bytes_cmaui_1c1_nested2
-      endpoint_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - endpoint_pd_server_nested2_1b
-      cpu_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - cpu_server_pd_pattern4
-      network.outgoing.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.outgoing.bytes_cmaui_1c1_nested2_cmaui_port
-      disk.device.allocation_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.allocation_pd_server_nested2_1b
-      network.outgoing.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.outgoing.bytes_cmaui_1c1_nested2_cmaui_port
-      disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.read.requests_server_pd_pattern4
-      network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.bytes.rate_pd_server_pattern4_port_1
-      disk.write.bytes.rate_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.write.bytes.rate_ps_server_nested2_1b
-      network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.packets.rate_pd_server_pattern4_port_2
-      disk.device.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.write.requests_server_pd_pattern4_1
-      forwarder_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - forwarder_pd_server_nested2_1b_pd_server_nested2_1b_port
-      memory.resident_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - memory.resident_server_pd_pattern4_1
-      feature_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - feature
-      network.outgoing.bytes.rate_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.outgoing.bytes.rate_ps_server_nested2_1b_ps_server_nested2_1b_port
-      memory_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - memory_server_pd_pattern4
-      disk.write.bytes.rate_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.bytes.rate_cmaui_1c1_nested2
-      disk.write.bytes.rate_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.bytes.rate_cmaui_1c1_nested2
-      attachment_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - attachment_ps_server_nested2_1b_ps_server_nested2_1b_port
-      binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - binding_pd_server_pattern4_port_1
-      forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - forwarder_pd_server_pattern4_port_01
-      attachment_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - attachment_pd_server_pattern4_port_02
-      disk.device.iops_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.iops_ps_server_nested2_1b
-      disk.ephemeral.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.ephemeral.size_server_pd_pattern4_1
-      disk.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.read.bytes.rate_server_pd_pattern4_1
-      os_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - os_server_pd_pattern4_1
-      cpu_util_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - cpu_util_pd_server_nested2_1b
-      network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.packets_pd_server_pattern4_port_01
-      network.incoming.packets_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.incoming.packets_pd_server_nested2_1b_pd_server_nested2_1b_port
-      disk.write.bytes.rate_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.write.bytes.rate_pd_server_nested2_1b
-      network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.packets.rate_pd_server_pattern4_port_02
-      disk.device.capacity_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.capacity_cmaui_1c1_nested2
-      disk.device.capacity_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.capacity_cmaui_1c1_nested2
-      binding_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - binding_pd_server_pattern4_port_02
-      network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outpoing.packets_pd_server_pattern4_port_1
-      disk.device.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.write.requests.rate_server_pd_pattern4_1
-      disk.write.bytes_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.write.bytes_ps_server_nested2_1b
-      disk.latency_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.latency_pd_server_nested2_1b
-      network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.packets_pd_server_pattern4_port_1
-      network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.packets_pd_server_pattern4_port_2
-      binding_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - binding_cmaui_1c1_nested2_cmaui_port
-      binding_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - binding_cmaui_1c1_nested2_cmaui_port
-      network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outgoing.packets.rate_pd_server_pattern4_port_1
-      disk.device.capacity_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.capacity_ps_server_nested2_1b
-      network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_1
-      network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outpoing.packets_pd_server_pattern4_port_2
-      disk.read.requests_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.read.requests_ps_server_nested2_1b
-      network.incoming.bytes_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.incoming.bytes_ps_server_nested2_1b_ps_server_nested2_1b_port
-      network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_02
-      feature_test_resourceGroup:
-      - test_resourceGroup
-      - feature
-      disk.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.read.bytes_server_pd_pattern4_1
-      network.incoming.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.bytes_cmaui_1c1_nested2_cmaui_port
-      disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.write.requests.rate_server_pd_pattern4
-      disk.device.read.bytes.rate_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.read.bytes.rate_pd_server_nested2_1b
-      network.incoming.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.bytes_cmaui_1c1_nested2_cmaui_port
-      disk.write.requests.rate_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.write.requests.rate_pd_server_nested2_1b
-      scalable_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - scalable_server_pd_pattern4
-      disk.device.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.iops_server_pd_pattern4_1
-      disk.allocation_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.allocation_cmaui_1c1_nested2
-      disk.usage_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.usage_ps_server_nested2_1b
-      disk.allocation_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.allocation_cmaui_1c1_nested2
-      network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.packets.rate_pd_server_pattern4_port_01
-      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.bytes.rate_cmaui_1c1_nested2
-      network.incoming.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.packets.rate_cmaui_1c1_nested2_cmaui_port
-      network.incoming.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.packets.rate_cmaui_1c1_nested2_cmaui_port
-      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.bytes.rate_cmaui_1c1_nested2
-      feature_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - feature_cmaui_1c1_nested2_cmaui_port
-      feature_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - feature_cmaui_1c1_nested2_cmaui_port
-      os_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - os_ps_server_nested2_1b
-      disk.device.read.requests_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.read.requests_ps_server_nested2_1b
-      network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outgoing.packets.rate_pd_server_pattern4_port_01
-      disk.ephemeral.size_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.ephemeral.size_ps_server_nested2_1b
-      disk.device.iops_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.iops_pd_server_nested2_1b
-      network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.packets.rate_pd_server_pattern4_port_1
-      feature_jsa_security_group1_test_resourceGroup:
-      - test_resourceGroup
-      - feature_jsa_security_group1
-      disk.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.write.requests.rate_server_pd_pattern4_1
-      disk.device.usage_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.usage_ps_server_nested2_1b
-      feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - feature_pd_server_pattern4_port_2
-      disk.device.write.requests.rate_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.requests.rate_cmaui_1c1_nested2
-      disk.device.write.requests.rate_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.requests.rate_cmaui_1c1_nested2
-      memory.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - memory.usage_server_pd_pattern4_1
-      disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.latency_server_pd_pattern4
-      cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - cpu_util_server_pd_pattern4
-      binding_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - binding_cmaui_1c1_nested2
-      binding_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - binding_cmaui_1c1_nested2
-      feature_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - feature_cmaui_1c1_nested2
-      disk.write.requests.rate_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.requests.rate_cmaui_1c1_nested2
-      feature_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - feature_cmaui_1c1_nested2
-      disk.write.requests.rate_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.requests.rate_cmaui_1c1_nested2
-      disk.root.size_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.root.size_pd_server_nested2_1b
-      disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.write.requests_server_pd_pattern4
-      memory.usage_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - memory.usage_ps_server_nested2_1b
-      disk.read.bytes.rate_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.read.bytes.rate_cmaui_1c1_nested2
-      cpu_util_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - cpu_util_server_pd_pattern4_1
-      disk.read.bytes.rate_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.read.bytes.rate_cmaui_1c1_nested2
-      endpoint_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - endpoint_ps_server_nested2_1b
-      network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.bytes_pd_server_pattern4_port_02
-      forwarder_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - forwarder_cmaui_1c1_nested2_cmaui_port
-      network.incoming.bytes_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.incoming.bytes_pd_server_nested2_1b_pd_server_nested2_1b_port
-      forwarder_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - forwarder_cmaui_1c1_nested2_cmaui_port
-      vcpus_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - vcpus_cmaui_1c1_nested2
-      vcpus_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - vcpus_ps_server_nested2_1b
-      vcpus_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - vcpus_cmaui_1c1_nested2
-      disk.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.write.bytes.rate_server_pd_pattern4_1
-      disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.iops_server_pd_pattern4
-      disk.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.allocation_server_pd_pattern4_1
-      disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.usage_server_pd_pattern4
-      network.outgoing.bytes_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.outgoing.bytes_ps_server_nested2_1b_ps_server_nested2_1b_port
-      disk.write.requests_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.write.requests_pd_server_nested2_1b
-      disk.device.write.bytes_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.write.bytes_ps_server_nested2_1b
-      network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outgoing.bytes_pd_server_pattern4_port_02
-      disk.latency_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.latency_ps_server_nested2_1b
-      memory.resident_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - memory.resident_cmaui_1c1_nested2
-      network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.bytes.rate_pd_server_pattern4_port_02
-      disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.allocation_server_pd_pattern4
-      disk.device.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.read.bytes.rate_server_pd_pattern4_1
-      feature_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - feature_pd_server_nested2_1b_pd_server_nested2_1b_port
-      cpu_util_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - cpu_util_ps_server_nested2_1b
-      disk.device.write.requests.rate_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.write.requests.rate_pd_server_nested2_1b
-      disk.read.requests_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.read.requests_pd_server_nested2_1b
-      disk.device.read.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.read.requests.rate_server_pd_pattern4_1
-      disk.device.capacity_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.capacity_pd_server_nested2_1b
-      disk.capacity_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.capacity_ps_server_nested2_1b
-      instance_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - instance_server_pd_pattern4_1
-      disk.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.read.requests_server_pd_pattern4_1
-      os_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - os_cmaui_1c1_nested2
-      disk.device.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.latency_server_pd_pattern4_1
-      disk.read.bytes_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.read.bytes_ps_server_nested2_1b
-      os_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - os_cmaui_1c1_nested2
-      network.incoming.bytes.rate_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.incoming.bytes.rate_pd_server_nested2_1b_pd_server_nested2_1b_port
-      attachment_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - attachment_pd_server_nested2_1b_pd_server_nested2_1b_port
-      attachment_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - attachment_pd_server_pattern4_port_01
-      feature_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - feature_pd_server_pattern4_port_02
-      feature_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - feature_server_pd_pattern4_1
-      disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.allocation_server_pd_pattern4
-      network.outpoing.packets_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.outpoing.packets_cmaui_1c1_nested2_cmaui_port
-      network.outpoing.packets_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.outpoing.packets_cmaui_1c1_nested2_cmaui_port
-      disk.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.iops_server_pd_pattern4_1
-      disk.ephemeral.size_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.ephemeral.size_pd_server_nested2_1b
-      memory.resident_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - memory.resident_pd_server_nested2_1b
-      network.outgoing.packets.rate_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.outgoing.packets.rate_pd_server_nested2_1b_pd_server_nested2_1b_port
-      disk.device.usage_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.usage_cmaui_1c1_nested2
-      disk.device.usage_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.usage_cmaui_1c1_nested2
-      feature_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - feature_server_pd_pattern4
-      disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.write.requests.rate_server_pd_pattern4
-      network.outpoing.packets_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.outpoing.packets_ps_server_nested2_1b_ps_server_nested2_1b_port
-      feature_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - feature_ps_server_nested2_1b
-      memory.resident_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - memory.resident_cmaui_1c1_nested2
-      disk.device.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.write.bytes_server_pd_pattern4_1
-      disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.latency_server_pd_pattern4
-      host_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - host_server_pd_pattern4_1
-      disk.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.latency_server_pd_pattern4_1
-      disk.device.iops_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.iops_cmaui_1c1_nested2
-      disk.device.iops_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.iops_cmaui_1c1_nested2
-      disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.usage_server_pd_pattern4
-      disk.device.write.bytes.rate_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.write.bytes.rate_pd_server_nested2_1b
-      forwarder_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - forwarder_ps_server_nested2_1b_ps_server_nested2_1b_port
-      attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - attachment_pd_server_pattern4_port_2
-      network.outgoing.bytes.rate_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.outgoing.bytes.rate_pd_server_nested2_1b_pd_server_nested2_1b_port
-      network.incoming.packets.rate_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.incoming.packets.rate_ps_server_nested2_1b_ps_server_nested2_1b_port
-      binding_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - binding_pd_server_pattern4_port_01
-      disk.device.read.requests_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.requests_cmaui_1c1_nested2
-      binding_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - binding_ps_server_nested2_1b_ps_server_nested2_1b_port
-      host_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - host_server_pd_pattern4
-      disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.read.requests_server_pd_pattern4
-      cpu.delta_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - cpu.delta_server_pd_pattern4_1
-      disk.usage_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.usage_pd_server_nested2_1b
-      disk.device.read.bytes.rate_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.read.bytes.rate_ps_server_nested2_1b
-      network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_2
-      network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.bytes_pd_server_pattern4_port_01
-      disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.write.bytes_server_pd_pattern4
-      disk.device.read.requests_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.requests_cmaui_1c1_nested2
-      feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - feature_pd_server_pattern4_port_1
-      network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outgoing.bytes.rate_pd_server_pattern4_port_01
-      scalable_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - scalable_cmaui_1c1_nested2
-      cpu.delta_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - cpu.delta_cmaui_1c1_nested2
-      cpu.delta_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - cpu.delta_cmaui_1c1_nested2
-      cpu_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - cpu_pd_server_nested2_1b
-      network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outpoing.packets_pd_server_pattern4_port_01
-      disk.device.latency_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.latency_ps_server_nested2_1b
-      disk.capacity_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.capacity_pd_server_nested2_1b
-      memory.usage_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - memory.usage_pd_server_nested2_1b
-      disk.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.write.bytes_server_pd_pattern4_1
-      cpu_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - cpu_server_pd_pattern4_1
-      binding_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - binding_server_pd_pattern4_1
-      cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - cpu.delta_server_pd_pattern4
-      scalable_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - scalable_cmaui_1c1_nested2
-      host_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - host_cmaui_1c1_nested2
-      host_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - host_cmaui_1c1_nested2
-      disk.capacity_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.capacity_cmaui_1c1_nested2
-      feature_jsa_security_group1_test_nested3Level:
-      - test_nested3Level
-      - feature_jsa_security_group1
-      network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outgoing.bytes_pd_server_pattern4_port_2
-      disk.capacity_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.capacity_cmaui_1c1_nested2
-      disk.device.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.allocation_server_pd_pattern4_1
-      disk.device.read.bytes_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.read.bytes_ps_server_nested2_1b
-      disk.device.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.usage_server_pd_pattern4_1
-      disk.device.read.requests_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.read.requests_pd_server_nested2_1b
-      disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.write.requests_server_pd_pattern4
-      feature_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - feature_pd_server_pattern4_port_01
-      endpoint_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - endpoint_cmaui_1c1_nested2
-      network.incoming.packets_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.packets_cmaui_1c1_nested2_cmaui_port
-      disk.device.write.requests.rate_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.write.requests.rate_ps_server_nested2_1b
-      network.incoming.packets_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.incoming.packets_ps_server_nested2_1b_ps_server_nested2_1b_port
-      binding_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - binding_pd_server_nested2_1b
-      network.incoming.packets_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.packets_cmaui_1c1_nested2_cmaui_port
-      feature_jsa_security_group2_test_nested3Level:
-      - test_nested3Level
-      - feature_jsa_security_group2
-      feature_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - feature
-      disk.root.size_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.root.size_ps_server_nested2_1b
-      endpoint_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - endpoint_cmaui_1c1_nested2
-      disk.device.write.bytes_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.write.bytes_pd_server_nested2_1b
-      disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.ephemeral.size_server_pd_pattern4
-      disk.usage_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.usage_cmaui_1c1_nested2
-      disk.usage_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.usage_cmaui_1c1_nested2
-      disk.device.write.requests_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.write.requests_pd_server_nested2_1b
-      network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.bytes_pd_server_pattern4_port_2
-      disk.root.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.root.size_server_pd_pattern4_1
-      cpu.delta_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - cpu.delta_pd_server_nested2_1b
-      disk.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.write.requests_server_pd_pattern4_1
-      network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.bytes_pd_server_pattern4_port_1
-      host_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - host_ps_server_nested2_1b
-      disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.write.bytes.rate_server_pd_pattern4
-      feature_jsa_security_group2_test_resourceGroup:
-      - test_resourceGroup
-      - feature_jsa_security_group2
-      feature_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - feature_pd_server_nested2_1b
-      disk.device.read.requests.rate_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.read.requests.rate_ps_server_nested2_1b
-      disk.read.requests_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.read.requests_cmaui_1c1_nested2
-      disk.device.read.requests.rate_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.requests.rate_cmaui_1c1_nested2
-      network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.packets_pd_server_pattern4_port_02
-      disk.read.requests_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.read.requests_cmaui_1c1_nested2
-      disk.device.read.requests.rate_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.requests.rate_cmaui_1c1_nested2
-      cpu_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - cpu_cmaui_1c1_nested2
-      network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outgoing.packets.rate_pd_server_pattern4_port_2
-      cpu_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - cpu_cmaui_1c1_nested2
-      instance_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - instance_pd_server_nested2_1b
-      memory_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - memory_cmaui_1c1_nested2
-      memory_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - memory_cmaui_1c1_nested2
-      disk.device.write.requests_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.requests_cmaui_1c1_nested2
-      memory_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - memory_server_pd_pattern4_1
-      disk.device.write.requests_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.requests_cmaui_1c1_nested2
-      network.outgoing.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.outgoing.bytes.rate_cmaui_1c1_nested2_cmaui_port
-      disk.write.requests_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.write.requests_ps_server_nested2_1b
-      disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.read.requests.rate_server_pd_pattern4
-      network.outgoing.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.outgoing.bytes.rate_cmaui_1c1_nested2_cmaui_port
-      disk.device.write.bytes_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.bytes_cmaui_1c1_nested2
-      memory_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - memory_ps_server_nested2_1b
-      binding_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - binding_server_pd_pattern4
-      disk.read.bytes_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.read.bytes_cmaui_1c1_nested2
-      endpoint_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - endpoint_server_pd_pattern4_1
-      disk.read.bytes_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.read.bytes_cmaui_1c1_nested2
-      disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.read.bytes.rate_server_pd_pattern4
-      disk.device.write.bytes_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.write.bytes_cmaui_1c1_nested2
-      vcpus_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - vcpus_server_pd_pattern4_1
-      os_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - os_server_pd_pattern4
-      forwarder_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - forwarder_pd_server_pattern4_port_1
-      disk.device.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.read.requests_server_pd_pattern4_1
-      attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - attachment_pd_server_pattern4_port_1
-      disk.write.requests_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.requests_cmaui_1c1_nested2
-      disk.write.requests_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.requests_cmaui_1c1_nested2
-      memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - memory.resident_server_pd_pattern4
-      scalable_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - scalable_ps_server_nested2_1b
-      instance_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - instance_server_pd_pattern4
-      disk.ephemeral.size_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.ephemeral.size_cmaui_1c1_nested2
-      disk.ephemeral.size_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.ephemeral.size_cmaui_1c1_nested2
-      network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outpoing.packets_pd_server_pattern4_port_02
-      disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.capacity_server_pd_pattern4
-      memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - memory.usage_server_pd_pattern4
-      disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.read.bytes.rate_server_pd_pattern4
-      forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - forwarder_pd_server_pattern4_port_02
-      disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.capacity_server_pd_pattern4
-      attachment_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - attachment_cmaui_1c1_nested2_cmaui_port
-      disk.allocation_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.allocation_pd_server_nested2_1b
-      cpu_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - cpu_ps_server_nested2_1b
-      disk.device.write.bytes.rate_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.write.bytes.rate_ps_server_nested2_1b
-      disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.write.bytes.rate_server_pd_pattern4
-      disk.read.bytes.rate_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.read.bytes.rate_ps_server_nested2_1b
-      disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.read.bytes_server_pd_pattern4
-      network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.incoming.bytes.rate_pd_server_pattern4_port_2
-      network.outgoing.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.outgoing.packets.rate_cmaui_1c1_nested2_cmaui_port
-      network.outgoing.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.outgoing.packets.rate_cmaui_1c1_nested2_cmaui_port
-      attachment_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - attachment_cmaui_1c1_nested2_cmaui_port
-      disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.device.iops_server_pd_pattern4
-      disk.device.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.read.bytes_server_pd_pattern4_1
-      disk.root.size_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.root.size_cmaui_1c1_nested2
-      disk.root.size_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.root.size_cmaui_1c1_nested2
-      disk.device.latency_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.latency_pd_server_nested2_1b
-      disk.write.bytes_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.bytes_cmaui_1c1_nested2
-      network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - network.outgoing.bytes_pd_server_pattern4_port_1
-      disk.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.usage_server_pd_pattern4_1
-      disk.write.bytes_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.write.bytes_cmaui_1c1_nested2
-      disk.iops_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.iops_cmaui_1c1_nested2
-      feature_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - feature_ps_server_nested2_1b_ps_server_nested2_1b_port
-      disk.iops_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.iops_cmaui_1c1_nested2
-      network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outgoing.bytes_pd_server_pattern4_port_01
-      disk.iops_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.iops_pd_server_nested2_1b
-      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.bytes.rate_cmaui_1c1_nested2
-      binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - binding_pd_server_pattern4_port_2
-      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.read.bytes.rate_cmaui_1c1_nested2
-      disk.latency_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.latency_cmaui_1c1_nested2
-      vcpus_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - vcpus_server_pd_pattern4
-      feature_test_nested3Level:
-      - test_nested3Level
-      - feature
-      disk.device.write.requests_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.write.requests_ps_server_nested2_1b
-      endpoint_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - endpoint_server_pd_pattern4
-      disk.device.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.capacity_server_pd_pattern4_1
-      memory_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - memory_pd_server_nested2_1b
-      disk.write.requests.rate_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.write.requests.rate_ps_server_nested2_1b
-      cpu_util_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - cpu_util_cmaui_1c1_nested2
-      disk.device.read.bytes_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.read.bytes_pd_server_nested2_1b
-      disk.latency_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.latency_cmaui_1c1_nested2
-      cpu_util_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - cpu_util_cmaui_1c1_nested2
-      instance_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - instance_ps_server_nested2_1b
-      network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.incoming.bytes.rate_pd_server_pattern4_port_01
-      network.incoming.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.bytes.rate_cmaui_1c1_nested2_cmaui_port
-      network.incoming.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - network.incoming.bytes.rate_cmaui_1c1_nested2_cmaui_port
-      host_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - host_pd_server_nested2_1b
-      disk.write.bytes_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.write.bytes_pd_server_nested2_1b
-      disk.read.bytes.rate_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.read.bytes.rate_pd_server_nested2_1b
-      binding_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - binding_pd_server_nested2_1b_pd_server_nested2_1b_port
-      disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.root.size_server_pd_pattern4
-      network.incoming.bytes.rate_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - network.incoming.bytes.rate_ps_server_nested2_1b_ps_server_nested2_1b_port
-      disk.device.read.requests.rate_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - disk.device.read.requests.rate_pd_server_nested2_1b
-      binding_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - binding_ps_server_nested2_1b
-      disk.device.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.device.write.bytes.rate_server_pd_pattern4_1
-      disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - disk.read.bytes_server_pd_pattern4
-      disk.device.allocation_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - disk.device.allocation_ps_server_nested2_1b
-      scalable_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - scalable_pd_server_nested2_1b
-      disk.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - disk.capacity_server_pd_pattern4_1
-      network.outgoing.bytes_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - network.outgoing.bytes_pd_server_nested2_1b_pd_server_nested2_1b_port
-      network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - network.outgoing.packets.rate_pd_server_pattern4_port_02
-      disk.device.allocation_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.allocation_cmaui_1c1_nested2
-      cpu.delta_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - cpu.delta_ps_server_nested2_1b
-      disk.device.allocation_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - disk.device.allocation_cmaui_1c1_nested2
-    requirements:
-      dependency_jsa_security_group1_test_resourceGroup:
-      - test_resourceGroup
-      - dependency_jsa_security_group1
-      port_jsa_security_group2_test_resourceGroup:
-      - test_resourceGroup
-      - port_jsa_security_group2
-      dependency_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - dependency_cmaui_1c1_nested2
-      dependency_jsa_security_group2_test_nested3Level:
-      - test_nested3Level
-      - dependency_jsa_security_group2
-      port_jsa_security_group1_test_resourceGroup:
-      - test_resourceGroup
-      - port_jsa_security_group1
-      link_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - link_ps_server_nested2_1b_ps_server_nested2_1b_port
-      dependency_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - dependency_ps_server_nested2_1b
-      dependency_jsa_security_group2_test_resourceGroup:
-      - test_resourceGroup
-      - dependency_jsa_security_group2
-      local_storage_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - local_storage_server_pd_pattern4
-      dependency_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - dependency_cmaui_1c1_nested2
-      dependency_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - dependency_pd_server_pattern4_port_01
-      port_jsa_security_group2_test_nested3Level:
-      - test_nested3Level
-      - port_jsa_security_group2
-      dependency_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - dependency_pd_server_nested2_1b
-      link_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - link_cmaui_1c1_nested2_cmaui_port
-      link_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - link_pd_server_pattern4_port_02
-      link_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - link_cmaui_1c1_nested2_cmaui_port
-      local_storage_server_nested2_ps_1b:
-      - abstract_ps_server_nested2_1b
-      - local_storage_ps_server_nested2_1b
-      dependency_test_resourceGroup:
-      - test_resourceGroup
-      - dependency
-      local_storage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - local_storage_server_pd_pattern4_1
-      dependency_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - dependency_pd_server_pattern4_port_02
-      dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - dependency_pd_server_pattern4_port_1
-      dependency_cmaui_port_1:
-      - abstract_cmaui_1c1_nested2
-      - dependency_cmaui_1c1_nested2_cmaui_port
-      link_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - link_pd_server_nested2_1b_pd_server_nested2_1b_port
-      dependency_server_pd_pattern4_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - dependency_server_pd_pattern4
-      dependency_test_nested3Level:
-      - test_nested3Level
-      - dependency
-      dependency_cmaui_port_2:
-      - abstract_cmaui_1c1_nested2
-      - dependency_cmaui_1c1_nested2_cmaui_port
-      dependency_pd_server_nested2_1b_port:
-      - abstract_pd_server_nested2_1b
-      - dependency_pd_server_nested2_1b_pd_server_nested2_1b_port
-      port_jsa_security_group1_test_nested3Level:
-      - test_nested3Level
-      - port_jsa_security_group1
-      dependency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - dependency_server_pd_pattern4_1
-      link_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - link_pd_server_pattern4_port_01
-      dependency_ps_server_nested2_1b_port:
-      - abstract_ps_server_nested2_1b
-      - dependency_ps_server_nested2_1b_ps_server_nested2_1b_port
-      dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - dependency_pd_server_pattern4_port_2
-      link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - link_pd_server_pattern4_port_2
-      dependency_jsa_security_group1_test_nested3Level:
-      - test_nested3Level
-      - dependency_jsa_security_group1
-      link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - link_pd_server_pattern4_port_1
-      local_storage_server_nested2_1c1_cmaui_2:
-      - abstract_cmaui_1c1_nested2
-      - local_storage_cmaui_1c1_nested2
-      local_storage_server_nested2_pd_1b:
-      - abstract_pd_server_nested2_1b
-      - local_storage_pd_server_nested2_1b
-      dependency_test_nested_pattern_4_same_type_diff_file:
-      - test_nested_pattern_4_same_type_diff_file
-      - dependency
-      local_storage_server_nested2_1c1_cmaui_1:
-      - abstract_cmaui_1c1_nested2
-      - local_storage_cmaui_1c1_nested2
-      dependency_test_nested_pattern_4_nested2:
-      - test_nested_pattern_4_nested2
-      - dependency
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested2\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    cmaui_1c1_nested2_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    cmaui_1c1_nested2_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    ps_server_nested2_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: security_group_name\r
+    pd_server_nested2_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PD server\r
+    contrail_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: network name of contrail v2 network\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: network name of jsa network\r
+    ps_server_nested2_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Ps server names\r
+      entry_schema:\r
+        type: string\r
+    pd_server_nested2_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    jsa_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: network name of jsa log network\r
+    cmaui_1c1_nested2_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    ps_server_nested2_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PS server\r
+    pd_server_nested2_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: PD server names\r
+      entry_schema:\r
+        type: string\r
+    name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: nested parameter\r
+    pd_server_nested2_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: PD Image server\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availabilityzone name\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    ps_server_nested2_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Ps Image server\r
+  node_templates:\r
+    abstract_pd_server_nested2_1b:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server_nested2_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_pd_server_nested2_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_pd_server_nested2_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - pd_server_nested2_1b_ips\r
+            - 0\r
+        port_pd_server_nested2_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_flavor_name:\r
+          get_input: pd_server_nested2_1b_flavor\r
+        compute_pd_server_nested2_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        compute_pd_server_nested2_1b_name:\r
+        - get_input:\r
+          - pd_server_nested2_1b_names\r
+          - 0\r
+        vm_image_name:\r
+          get_input: pd_server_nested2_1b_image\r
+        port_pd_server_nested2_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_nested2_1b_port_network:\r
+        - get_input: jsa_name\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_server_nested2_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    test_nested_pattern_4_nested2:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1:\r
+          get_input: jsa_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pattern-4ServiceTemplate.yaml\r
+        port_pd_server_pattern4_port_01_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_02_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_02_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_01_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+    test_nested3Level:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested3\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested3ServiceTemplate.yaml\r
+        name:\r
+          get_input: security_group_name\r
+    test_nested_pattern_4_same_type_diff_file:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4_2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1:\r
+          get_input: jsa_name\r
+        service_template_filter:\r
+          substitute_service_template: nested-pattern-4-same-typeServiceTemplate.yaml\r
+        port_pd_server_pattern4_port_1_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_2_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_1_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_pattern4_port_2_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+    abstract_ps_server_nested2_1b:\r
+      type: org.openecomp.resource.abstract.nodes.ps_server_nested2_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_ps_server_nested2_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        compute_ps_server_nested2_1b_name:\r
+        - get_input:\r
+          - ps_server_nested2_1b_names\r
+          - 1\r
+        compute_ps_server_nested2_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_ps_server_nested2_1b_port_replacement_policy:\r
+        - AUTO\r
+        vm_flavor_name:\r
+          get_input: ps_server_nested2_1b_flavor\r
+        port_ps_server_nested2_1b_port_network:\r
+        - get_input: jsa_name\r
+        vm_image_name:\r
+          get_input: ps_server_nested2_1b_image\r
+        port_ps_server_nested2_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - ps_server_nested2_1b_ips\r
+            - 0\r
+        port_ps_server_nested2_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_ps_server_nested2_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    test_resourceGroup:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested3\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1:\r
+          get_input: name\r
+        service_template_filter:\r
+          substitute_service_template: nested3ServiceTemplate.yaml\r
+          count: 9\r
+          mandatory: true\r
+        indx:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_cmaui_1c1_nested2:\r
+      type: org.openecomp.resource.abstract.nodes.cmaui_1c1_nested2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_cmaui_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        port_cmaui_port_network:\r
+        - get_input: contrail_net_name\r
+        - get_input: contrail_net_name\r
+        port_cmaui_port_network_role_tag: contrail\r
+        vm_flavor_name:\r
+          get_input: cmaui_1c1_nested2_flavor\r
+        port_cmaui_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_cmaui_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_image_name:\r
+          get_input: cmaui_1c1_nested2_image\r
+        port_cmaui_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        compute_cmaui_1c1_nested2_name:\r
+        - get_input:\r
+          - cmaui_1c1_nested2_names\r
+          - 1\r
+        - get_input:\r
+          - cmaui_1c1_nested2_names\r
+          - 0\r
+        compute_cmaui_1c1_nested2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_cmaui_1c1_nested2ServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    nested2_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested2.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - test_resourceGroup\r
+      - test_nested_pattern_4_nested2\r
+      - test_nested3Level\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - abstract_cmaui_1c1_nested2\r
+      - abstract_pd_server_nested2_1b\r
+      - abstract_ps_server_nested2_1b\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested2\r
+    capabilities:\r
+      instance_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - instance_cmaui_1c1_nested2\r
+      disk.allocation_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.allocation_ps_server_nested2_1b\r
+      scalable_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - scalable_server_pd_pattern4_1\r
+      network.incoming.packets.rate_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.incoming.packets.rate_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      os_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - os_pd_server_nested2_1b\r
+      disk.device.usage_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.usage_pd_server_nested2_1b\r
+      disk.device.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.write.bytes_server_pd_pattern4\r
+      vcpus_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - vcpus_pd_server_nested2_1b\r
+      memory.usage_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - memory.usage_cmaui_1c1_nested2\r
+      disk.device.latency_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.latency_cmaui_1c1_nested2\r
+      memory.usage_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - memory.usage_cmaui_1c1_nested2\r
+      instance_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - instance_cmaui_1c1_nested2\r
+      disk.device.latency_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.latency_cmaui_1c1_nested2\r
+      forwarder_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - forwarder_pd_server_pattern4_port_2\r
+      disk.iops_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.iops_ps_server_nested2_1b\r
+      disk.read.bytes_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.read.bytes_pd_server_nested2_1b\r
+      network.outgoing.packets.rate_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.outgoing.packets.rate_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      memory.resident_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - memory.resident_ps_server_nested2_1b\r
+      network.outpoing.packets_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.outpoing.packets_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      disk.device.read.bytes_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.bytes_cmaui_1c1_nested2\r
+      disk.device.read.bytes_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.bytes_cmaui_1c1_nested2\r
+      endpoint_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - endpoint_pd_server_nested2_1b\r
+      cpu_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - cpu_server_pd_pattern4\r
+      network.outgoing.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outgoing.bytes_cmaui_1c1_nested2_cmaui_port\r
+      disk.device.allocation_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.allocation_pd_server_nested2_1b\r
+      network.outgoing.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outgoing.bytes_cmaui_1c1_nested2_cmaui_port\r
+      disk.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.read.requests_server_pd_pattern4\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_1\r
+      disk.write.bytes.rate_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.write.bytes.rate_ps_server_nested2_1b\r
+      network.incoming.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_2\r
+      disk.device.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.write.requests_server_pd_pattern4_1\r
+      forwarder_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - forwarder_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      memory.resident_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - memory.resident_server_pd_pattern4_1\r
+      feature_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - feature\r
+      network.outgoing.bytes.rate_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.outgoing.bytes.rate_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      memory_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - memory_server_pd_pattern4\r
+      disk.write.bytes.rate_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.bytes.rate_cmaui_1c1_nested2\r
+      disk.write.bytes.rate_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.bytes.rate_cmaui_1c1_nested2\r
+      attachment_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - attachment_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      binding_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - binding_pd_server_pattern4_port_1\r
+      forwarder_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - forwarder_pd_server_pattern4_port_01\r
+      attachment_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - attachment_pd_server_pattern4_port_02\r
+      disk.device.iops_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.iops_ps_server_nested2_1b\r
+      disk.ephemeral.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.ephemeral.size_server_pd_pattern4_1\r
+      disk.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.read.bytes.rate_server_pd_pattern4_1\r
+      os_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - os_server_pd_pattern4_1\r
+      cpu_util_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - cpu_util_pd_server_nested2_1b\r
+      network.incoming.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.packets_pd_server_pattern4_port_01\r
+      network.incoming.packets_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.incoming.packets_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      disk.write.bytes.rate_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.write.bytes.rate_pd_server_nested2_1b\r
+      network.incoming.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_02\r
+      disk.device.capacity_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.capacity_cmaui_1c1_nested2\r
+      disk.device.capacity_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.capacity_cmaui_1c1_nested2\r
+      binding_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - binding_pd_server_pattern4_port_02\r
+      network.outpoing.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outpoing.packets_pd_server_pattern4_port_1\r
+      disk.device.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.write.requests.rate_server_pd_pattern4_1\r
+      disk.write.bytes_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.write.bytes_ps_server_nested2_1b\r
+      disk.latency_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.latency_pd_server_nested2_1b\r
+      network.incoming.packets_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.packets_pd_server_pattern4_port_1\r
+      network.incoming.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.packets_pd_server_pattern4_port_2\r
+      binding_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - binding_cmaui_1c1_nested2_cmaui_port\r
+      binding_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - binding_cmaui_1c1_nested2_cmaui_port\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_1\r
+      disk.device.capacity_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.capacity_ps_server_nested2_1b\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_1\r
+      network.outpoing.packets_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outpoing.packets_pd_server_pattern4_port_2\r
+      disk.read.requests_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.read.requests_ps_server_nested2_1b\r
+      network.incoming.bytes_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.incoming.bytes_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_02\r
+      feature_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - feature\r
+      disk.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.read.bytes_server_pd_pattern4_1\r
+      network.incoming.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.bytes_cmaui_1c1_nested2_cmaui_port\r
+      disk.device.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.write.requests.rate_server_pd_pattern4\r
+      disk.device.read.bytes.rate_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.read.bytes.rate_pd_server_nested2_1b\r
+      network.incoming.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.bytes_cmaui_1c1_nested2_cmaui_port\r
+      disk.write.requests.rate_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.write.requests.rate_pd_server_nested2_1b\r
+      scalable_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - scalable_server_pd_pattern4\r
+      disk.device.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.iops_server_pd_pattern4_1\r
+      disk.allocation_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.allocation_cmaui_1c1_nested2\r
+      disk.usage_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.usage_ps_server_nested2_1b\r
+      disk.allocation_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.allocation_cmaui_1c1_nested2\r
+      network.incoming.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_01\r
+      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.bytes.rate_cmaui_1c1_nested2\r
+      network.incoming.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.packets.rate_cmaui_1c1_nested2_cmaui_port\r
+      network.incoming.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.packets.rate_cmaui_1c1_nested2_cmaui_port\r
+      disk.device.write.bytes.rate_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.bytes.rate_cmaui_1c1_nested2\r
+      feature_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - feature_cmaui_1c1_nested2_cmaui_port\r
+      feature_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - feature_cmaui_1c1_nested2_cmaui_port\r
+      os_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - os_ps_server_nested2_1b\r
+      disk.device.read.requests_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.read.requests_ps_server_nested2_1b\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_01\r
+      disk.ephemeral.size_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.ephemeral.size_ps_server_nested2_1b\r
+      disk.device.iops_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.iops_pd_server_nested2_1b\r
+      network.incoming.packets.rate_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.packets.rate_pd_server_pattern4_port_1\r
+      feature_jsa_security_group1_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - feature_jsa_security_group1\r
+      disk.write.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.write.requests.rate_server_pd_pattern4_1\r
+      disk.device.usage_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.usage_ps_server_nested2_1b\r
+      feature_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - feature_pd_server_pattern4_port_2\r
+      disk.device.write.requests.rate_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.requests.rate_cmaui_1c1_nested2\r
+      disk.device.write.requests.rate_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.requests.rate_cmaui_1c1_nested2\r
+      memory.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - memory.usage_server_pd_pattern4_1\r
+      disk.latency_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.latency_server_pd_pattern4\r
+      cpu_util_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - cpu_util_server_pd_pattern4\r
+      binding_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - binding_cmaui_1c1_nested2\r
+      binding_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - binding_cmaui_1c1_nested2\r
+      feature_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - feature_cmaui_1c1_nested2\r
+      disk.write.requests.rate_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.requests.rate_cmaui_1c1_nested2\r
+      feature_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - feature_cmaui_1c1_nested2\r
+      disk.write.requests.rate_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.requests.rate_cmaui_1c1_nested2\r
+      disk.root.size_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.root.size_pd_server_nested2_1b\r
+      disk.device.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.write.requests_server_pd_pattern4\r
+      memory.usage_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - memory.usage_ps_server_nested2_1b\r
+      disk.read.bytes.rate_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.read.bytes.rate_cmaui_1c1_nested2\r
+      cpu_util_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - cpu_util_server_pd_pattern4_1\r
+      disk.read.bytes.rate_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.read.bytes.rate_cmaui_1c1_nested2\r
+      endpoint_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - endpoint_ps_server_nested2_1b\r
+      network.incoming.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.bytes_pd_server_pattern4_port_02\r
+      forwarder_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - forwarder_cmaui_1c1_nested2_cmaui_port\r
+      network.incoming.bytes_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.incoming.bytes_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      forwarder_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - forwarder_cmaui_1c1_nested2_cmaui_port\r
+      vcpus_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - vcpus_cmaui_1c1_nested2\r
+      vcpus_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - vcpus_ps_server_nested2_1b\r
+      vcpus_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - vcpus_cmaui_1c1_nested2\r
+      disk.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.write.bytes.rate_server_pd_pattern4_1\r
+      disk.iops_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.iops_server_pd_pattern4\r
+      disk.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.allocation_server_pd_pattern4_1\r
+      disk.usage_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.usage_server_pd_pattern4\r
+      network.outgoing.bytes_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.outgoing.bytes_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      disk.write.requests_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.write.requests_pd_server_nested2_1b\r
+      disk.device.write.bytes_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.write.bytes_ps_server_nested2_1b\r
+      network.outgoing.bytes_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outgoing.bytes_pd_server_pattern4_port_02\r
+      disk.latency_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.latency_ps_server_nested2_1b\r
+      memory.resident_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - memory.resident_cmaui_1c1_nested2\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_02\r
+      disk.device.allocation_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.allocation_server_pd_pattern4\r
+      disk.device.read.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.read.bytes.rate_server_pd_pattern4_1\r
+      feature_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - feature_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      cpu_util_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - cpu_util_ps_server_nested2_1b\r
+      disk.device.write.requests.rate_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.write.requests.rate_pd_server_nested2_1b\r
+      disk.read.requests_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.read.requests_pd_server_nested2_1b\r
+      disk.device.read.requests.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.read.requests.rate_server_pd_pattern4_1\r
+      disk.device.capacity_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.capacity_pd_server_nested2_1b\r
+      disk.capacity_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.capacity_ps_server_nested2_1b\r
+      instance_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - instance_server_pd_pattern4_1\r
+      disk.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.read.requests_server_pd_pattern4_1\r
+      os_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - os_cmaui_1c1_nested2\r
+      disk.device.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.latency_server_pd_pattern4_1\r
+      disk.read.bytes_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.read.bytes_ps_server_nested2_1b\r
+      os_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - os_cmaui_1c1_nested2\r
+      network.incoming.bytes.rate_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.incoming.bytes.rate_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      attachment_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - attachment_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      attachment_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - attachment_pd_server_pattern4_port_01\r
+      feature_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - feature_pd_server_pattern4_port_02\r
+      feature_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - feature_server_pd_pattern4_1\r
+      disk.allocation_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.allocation_server_pd_pattern4\r
+      network.outpoing.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outpoing.packets_cmaui_1c1_nested2_cmaui_port\r
+      network.outpoing.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outpoing.packets_cmaui_1c1_nested2_cmaui_port\r
+      disk.iops_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.iops_server_pd_pattern4_1\r
+      disk.ephemeral.size_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.ephemeral.size_pd_server_nested2_1b\r
+      memory.resident_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - memory.resident_pd_server_nested2_1b\r
+      network.outgoing.packets.rate_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.outgoing.packets.rate_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      disk.device.usage_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.usage_cmaui_1c1_nested2\r
+      disk.device.usage_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.usage_cmaui_1c1_nested2\r
+      feature_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - feature_server_pd_pattern4\r
+      disk.write.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.write.requests.rate_server_pd_pattern4\r
+      network.outpoing.packets_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.outpoing.packets_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      feature_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - feature_ps_server_nested2_1b\r
+      memory.resident_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - memory.resident_cmaui_1c1_nested2\r
+      disk.device.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.write.bytes_server_pd_pattern4_1\r
+      disk.device.latency_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.latency_server_pd_pattern4\r
+      host_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - host_server_pd_pattern4_1\r
+      disk.latency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.latency_server_pd_pattern4_1\r
+      disk.device.iops_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.iops_cmaui_1c1_nested2\r
+      disk.device.iops_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.iops_cmaui_1c1_nested2\r
+      disk.device.usage_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.usage_server_pd_pattern4\r
+      disk.device.write.bytes.rate_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.write.bytes.rate_pd_server_nested2_1b\r
+      forwarder_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - forwarder_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      attachment_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - attachment_pd_server_pattern4_port_2\r
+      network.outgoing.bytes.rate_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.outgoing.bytes.rate_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      network.incoming.packets.rate_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.incoming.packets.rate_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      binding_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - binding_pd_server_pattern4_port_01\r
+      disk.device.read.requests_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.requests_cmaui_1c1_nested2\r
+      binding_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - binding_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      host_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - host_server_pd_pattern4\r
+      disk.device.read.requests_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.read.requests_server_pd_pattern4\r
+      cpu.delta_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - cpu.delta_server_pd_pattern4_1\r
+      disk.usage_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.usage_pd_server_nested2_1b\r
+      disk.device.read.bytes.rate_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.read.bytes.rate_ps_server_nested2_1b\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_2\r
+      network.incoming.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.bytes_pd_server_pattern4_port_01\r
+      disk.write.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.write.bytes_server_pd_pattern4\r
+      disk.device.read.requests_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.requests_cmaui_1c1_nested2\r
+      feature_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - feature_pd_server_pattern4_port_1\r
+      network.outgoing.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outgoing.bytes.rate_pd_server_pattern4_port_01\r
+      scalable_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - scalable_cmaui_1c1_nested2\r
+      cpu.delta_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - cpu.delta_cmaui_1c1_nested2\r
+      cpu.delta_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - cpu.delta_cmaui_1c1_nested2\r
+      cpu_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - cpu_pd_server_nested2_1b\r
+      network.outpoing.packets_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outpoing.packets_pd_server_pattern4_port_01\r
+      disk.device.latency_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.latency_ps_server_nested2_1b\r
+      disk.capacity_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.capacity_pd_server_nested2_1b\r
+      memory.usage_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - memory.usage_pd_server_nested2_1b\r
+      disk.write.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.write.bytes_server_pd_pattern4_1\r
+      cpu_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - cpu_server_pd_pattern4_1\r
+      binding_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - binding_server_pd_pattern4_1\r
+      cpu.delta_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - cpu.delta_server_pd_pattern4\r
+      scalable_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - scalable_cmaui_1c1_nested2\r
+      host_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - host_cmaui_1c1_nested2\r
+      host_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - host_cmaui_1c1_nested2\r
+      disk.capacity_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.capacity_cmaui_1c1_nested2\r
+      feature_jsa_security_group1_test_nested3Level:\r
+      - test_nested3Level\r
+      - feature_jsa_security_group1\r
+      network.outgoing.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outgoing.bytes_pd_server_pattern4_port_2\r
+      disk.capacity_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.capacity_cmaui_1c1_nested2\r
+      disk.device.allocation_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.allocation_server_pd_pattern4_1\r
+      disk.device.read.bytes_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.read.bytes_ps_server_nested2_1b\r
+      disk.device.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.usage_server_pd_pattern4_1\r
+      disk.device.read.requests_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.read.requests_pd_server_nested2_1b\r
+      disk.write.requests_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.write.requests_server_pd_pattern4\r
+      feature_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - feature_pd_server_pattern4_port_01\r
+      endpoint_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - endpoint_cmaui_1c1_nested2\r
+      network.incoming.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.packets_cmaui_1c1_nested2_cmaui_port\r
+      disk.device.write.requests.rate_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.write.requests.rate_ps_server_nested2_1b\r
+      network.incoming.packets_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.incoming.packets_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      binding_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - binding_pd_server_nested2_1b\r
+      network.incoming.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.packets_cmaui_1c1_nested2_cmaui_port\r
+      feature_jsa_security_group2_test_nested3Level:\r
+      - test_nested3Level\r
+      - feature_jsa_security_group2\r
+      feature_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - feature\r
+      disk.root.size_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.root.size_ps_server_nested2_1b\r
+      endpoint_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - endpoint_cmaui_1c1_nested2\r
+      disk.device.write.bytes_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.write.bytes_pd_server_nested2_1b\r
+      disk.ephemeral.size_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.ephemeral.size_server_pd_pattern4\r
+      disk.usage_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.usage_cmaui_1c1_nested2\r
+      disk.usage_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.usage_cmaui_1c1_nested2\r
+      disk.device.write.requests_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.write.requests_pd_server_nested2_1b\r
+      network.incoming.bytes_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.bytes_pd_server_pattern4_port_2\r
+      disk.root.size_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.root.size_server_pd_pattern4_1\r
+      cpu.delta_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - cpu.delta_pd_server_nested2_1b\r
+      disk.write.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.write.requests_server_pd_pattern4_1\r
+      network.incoming.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.bytes_pd_server_pattern4_port_1\r
+      host_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - host_ps_server_nested2_1b\r
+      disk.device.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.write.bytes.rate_server_pd_pattern4\r
+      feature_jsa_security_group2_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - feature_jsa_security_group2\r
+      feature_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - feature_pd_server_nested2_1b\r
+      disk.device.read.requests.rate_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.read.requests.rate_ps_server_nested2_1b\r
+      disk.read.requests_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.read.requests_cmaui_1c1_nested2\r
+      disk.device.read.requests.rate_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.requests.rate_cmaui_1c1_nested2\r
+      network.incoming.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.packets_pd_server_pattern4_port_02\r
+      disk.read.requests_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.read.requests_cmaui_1c1_nested2\r
+      disk.device.read.requests.rate_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.requests.rate_cmaui_1c1_nested2\r
+      cpu_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - cpu_cmaui_1c1_nested2\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_2\r
+      cpu_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - cpu_cmaui_1c1_nested2\r
+      instance_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - instance_pd_server_nested2_1b\r
+      memory_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - memory_cmaui_1c1_nested2\r
+      memory_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - memory_cmaui_1c1_nested2\r
+      disk.device.write.requests_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.requests_cmaui_1c1_nested2\r
+      memory_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - memory_server_pd_pattern4_1\r
+      disk.device.write.requests_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.requests_cmaui_1c1_nested2\r
+      network.outgoing.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outgoing.bytes.rate_cmaui_1c1_nested2_cmaui_port\r
+      disk.write.requests_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.write.requests_ps_server_nested2_1b\r
+      disk.device.read.requests.rate_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.read.requests.rate_server_pd_pattern4\r
+      network.outgoing.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outgoing.bytes.rate_cmaui_1c1_nested2_cmaui_port\r
+      disk.device.write.bytes_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.bytes_cmaui_1c1_nested2\r
+      memory_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - memory_ps_server_nested2_1b\r
+      binding_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - binding_server_pd_pattern4\r
+      disk.read.bytes_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.read.bytes_cmaui_1c1_nested2\r
+      endpoint_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - endpoint_server_pd_pattern4_1\r
+      disk.read.bytes_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.read.bytes_cmaui_1c1_nested2\r
+      disk.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.read.bytes.rate_server_pd_pattern4\r
+      disk.device.write.bytes_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.write.bytes_cmaui_1c1_nested2\r
+      vcpus_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - vcpus_server_pd_pattern4_1\r
+      os_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - os_server_pd_pattern4\r
+      forwarder_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - forwarder_pd_server_pattern4_port_1\r
+      disk.device.read.requests_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.read.requests_server_pd_pattern4_1\r
+      attachment_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - attachment_pd_server_pattern4_port_1\r
+      disk.write.requests_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.requests_cmaui_1c1_nested2\r
+      disk.write.requests_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.requests_cmaui_1c1_nested2\r
+      memory.resident_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - memory.resident_server_pd_pattern4\r
+      scalable_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - scalable_ps_server_nested2_1b\r
+      instance_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - instance_server_pd_pattern4\r
+      disk.ephemeral.size_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.ephemeral.size_cmaui_1c1_nested2\r
+      disk.ephemeral.size_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.ephemeral.size_cmaui_1c1_nested2\r
+      network.outpoing.packets_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outpoing.packets_pd_server_pattern4_port_02\r
+      disk.device.capacity_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.capacity_server_pd_pattern4\r
+      memory.usage_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - memory.usage_server_pd_pattern4\r
+      disk.device.read.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.read.bytes.rate_server_pd_pattern4\r
+      forwarder_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - forwarder_pd_server_pattern4_port_02\r
+      disk.capacity_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.capacity_server_pd_pattern4\r
+      attachment_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - attachment_cmaui_1c1_nested2_cmaui_port\r
+      disk.allocation_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.allocation_pd_server_nested2_1b\r
+      cpu_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - cpu_ps_server_nested2_1b\r
+      disk.device.write.bytes.rate_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.write.bytes.rate_ps_server_nested2_1b\r
+      disk.write.bytes.rate_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.write.bytes.rate_server_pd_pattern4\r
+      disk.read.bytes.rate_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.read.bytes.rate_ps_server_nested2_1b\r
+      disk.device.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.read.bytes_server_pd_pattern4\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_2\r
+      network.outgoing.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outgoing.packets.rate_cmaui_1c1_nested2_cmaui_port\r
+      network.outgoing.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.outgoing.packets.rate_cmaui_1c1_nested2_cmaui_port\r
+      attachment_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - attachment_cmaui_1c1_nested2_cmaui_port\r
+      disk.device.iops_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.device.iops_server_pd_pattern4\r
+      disk.device.read.bytes_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.read.bytes_server_pd_pattern4_1\r
+      disk.root.size_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.root.size_cmaui_1c1_nested2\r
+      disk.root.size_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.root.size_cmaui_1c1_nested2\r
+      disk.device.latency_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.latency_pd_server_nested2_1b\r
+      disk.write.bytes_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.bytes_cmaui_1c1_nested2\r
+      network.outgoing.bytes_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - network.outgoing.bytes_pd_server_pattern4_port_1\r
+      disk.usage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.usage_server_pd_pattern4_1\r
+      disk.write.bytes_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.write.bytes_cmaui_1c1_nested2\r
+      disk.iops_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.iops_cmaui_1c1_nested2\r
+      feature_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - feature_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      disk.iops_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.iops_cmaui_1c1_nested2\r
+      network.outgoing.bytes_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outgoing.bytes_pd_server_pattern4_port_01\r
+      disk.iops_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.iops_pd_server_nested2_1b\r
+      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.bytes.rate_cmaui_1c1_nested2\r
+      binding_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - binding_pd_server_pattern4_port_2\r
+      disk.device.read.bytes.rate_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.read.bytes.rate_cmaui_1c1_nested2\r
+      disk.latency_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.latency_cmaui_1c1_nested2\r
+      vcpus_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - vcpus_server_pd_pattern4\r
+      feature_test_nested3Level:\r
+      - test_nested3Level\r
+      - feature\r
+      disk.device.write.requests_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.write.requests_ps_server_nested2_1b\r
+      endpoint_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - endpoint_server_pd_pattern4\r
+      disk.device.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.capacity_server_pd_pattern4_1\r
+      memory_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - memory_pd_server_nested2_1b\r
+      disk.write.requests.rate_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.write.requests.rate_ps_server_nested2_1b\r
+      cpu_util_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - cpu_util_cmaui_1c1_nested2\r
+      disk.device.read.bytes_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.read.bytes_pd_server_nested2_1b\r
+      disk.latency_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.latency_cmaui_1c1_nested2\r
+      cpu_util_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - cpu_util_cmaui_1c1_nested2\r
+      instance_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - instance_ps_server_nested2_1b\r
+      network.incoming.bytes.rate_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.incoming.bytes.rate_pd_server_pattern4_port_01\r
+      network.incoming.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.bytes.rate_cmaui_1c1_nested2_cmaui_port\r
+      network.incoming.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - network.incoming.bytes.rate_cmaui_1c1_nested2_cmaui_port\r
+      host_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - host_pd_server_nested2_1b\r
+      disk.write.bytes_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.write.bytes_pd_server_nested2_1b\r
+      disk.read.bytes.rate_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.read.bytes.rate_pd_server_nested2_1b\r
+      binding_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - binding_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      disk.root.size_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.root.size_server_pd_pattern4\r
+      network.incoming.bytes.rate_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - network.incoming.bytes.rate_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      disk.device.read.requests.rate_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - disk.device.read.requests.rate_pd_server_nested2_1b\r
+      binding_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - binding_ps_server_nested2_1b\r
+      disk.device.write.bytes.rate_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.device.write.bytes.rate_server_pd_pattern4_1\r
+      disk.read.bytes_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - disk.read.bytes_server_pd_pattern4\r
+      disk.device.allocation_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - disk.device.allocation_ps_server_nested2_1b\r
+      scalable_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - scalable_pd_server_nested2_1b\r
+      disk.capacity_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - disk.capacity_server_pd_pattern4_1\r
+      network.outgoing.bytes_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - network.outgoing.bytes_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      network.outgoing.packets.rate_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - network.outgoing.packets.rate_pd_server_pattern4_port_02\r
+      disk.device.allocation_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.allocation_cmaui_1c1_nested2\r
+      cpu.delta_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - cpu.delta_ps_server_nested2_1b\r
+      disk.device.allocation_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - disk.device.allocation_cmaui_1c1_nested2\r
+    requirements:\r
+      dependency_jsa_security_group1_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - dependency_jsa_security_group1\r
+      port_jsa_security_group2_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - port_jsa_security_group2\r
+      dependency_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - dependency_cmaui_1c1_nested2\r
+      dependency_jsa_security_group2_test_nested3Level:\r
+      - test_nested3Level\r
+      - dependency_jsa_security_group2\r
+      port_jsa_security_group1_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - port_jsa_security_group1\r
+      link_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - link_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      dependency_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - dependency_ps_server_nested2_1b\r
+      dependency_jsa_security_group2_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - dependency_jsa_security_group2\r
+      local_storage_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - local_storage_server_pd_pattern4\r
+      dependency_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - dependency_cmaui_1c1_nested2\r
+      dependency_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - dependency_pd_server_pattern4_port_01\r
+      port_jsa_security_group2_test_nested3Level:\r
+      - test_nested3Level\r
+      - port_jsa_security_group2\r
+      dependency_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - dependency_pd_server_nested2_1b\r
+      link_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - link_cmaui_1c1_nested2_cmaui_port\r
+      link_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - link_pd_server_pattern4_port_02\r
+      link_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - link_cmaui_1c1_nested2_cmaui_port\r
+      local_storage_server_nested2_ps_1b:\r
+      - abstract_ps_server_nested2_1b\r
+      - local_storage_ps_server_nested2_1b\r
+      dependency_test_resourceGroup:\r
+      - test_resourceGroup\r
+      - dependency\r
+      local_storage_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - local_storage_server_pd_pattern4_1\r
+      dependency_pd_server_pattern4_port_02_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - dependency_pd_server_pattern4_port_02\r
+      dependency_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - dependency_pd_server_pattern4_port_1\r
+      dependency_cmaui_port_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - dependency_cmaui_1c1_nested2_cmaui_port\r
+      link_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - link_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      dependency_server_pd_pattern4_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - dependency_server_pd_pattern4\r
+      dependency_test_nested3Level:\r
+      - test_nested3Level\r
+      - dependency\r
+      dependency_cmaui_port_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - dependency_cmaui_1c1_nested2_cmaui_port\r
+      dependency_pd_server_nested2_1b_port:\r
+      - abstract_pd_server_nested2_1b\r
+      - dependency_pd_server_nested2_1b_pd_server_nested2_1b_port\r
+      port_jsa_security_group1_test_nested3Level:\r
+      - test_nested3Level\r
+      - port_jsa_security_group1\r
+      dependency_server_pd_pattern4_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - dependency_server_pd_pattern4_1\r
+      link_pd_server_pattern4_port_01_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - link_pd_server_pattern4_port_01\r
+      dependency_ps_server_nested2_1b_port:\r
+      - abstract_ps_server_nested2_1b\r
+      - dependency_ps_server_nested2_1b_ps_server_nested2_1b_port\r
+      dependency_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - dependency_pd_server_pattern4_port_2\r
+      link_pd_server_pattern4_port_2_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - link_pd_server_pattern4_port_2\r
+      dependency_jsa_security_group1_test_nested3Level:\r
+      - test_nested3Level\r
+      - dependency_jsa_security_group1\r
+      link_pd_server_pattern4_port_1_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - link_pd_server_pattern4_port_1\r
+      local_storage_server_nested2_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1_nested2\r
+      - local_storage_cmaui_1c1_nested2\r
+      local_storage_server_nested2_pd_1b:\r
+      - abstract_pd_server_nested2_1b\r
+      - local_storage_pd_server_nested2_1b\r
+      dependency_test_nested_pattern_4_same_type_diff_file:\r
+      - test_nested_pattern_4_same_type_diff_file\r
+      - dependency\r
+      local_storage_server_nested2_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1_nested2\r
+      - local_storage_cmaui_1c1_nested2\r
+      dependency_test_nested_pattern_4_nested2:\r
+      - test_nested_pattern_4_nested2\r
+      - dependency\r
\ No newline at end of file
index 16e7d2c..9c4dff9 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    p1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: p1
-      type: string
-      description: UID of osm network
-    p2:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: p2
-      type: string
-      description: UID of osm network
-    rd_server_1b_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: rd_server_1b_flavor
-      type: string
-      description: Flavor for PD server
-    BE_1c1_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: BE_1c1_names
-      type: list
-      description: BE1, BE2 server names
-      entry_schema:
-        type: string
-    ps_server_1b_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: ps_server_1b_ips
-      type: string
-    packet_internal_network_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: packet_internal_network_name
-      type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: security_group_name
-      type: list
-      description: BE1, BE2 server names
-      entry_schema:
-        type: string
-    osm_server_1c2_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: osm_server_1c2_names
-      type: list
-      description: BE1, BE2 server names
-      entry_schema:
-        type: string
-    osm_server_1c2_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: osm_server_1c2_flavor
-      type: string
-      description: Flavor for BE server
-    rd_server_1b_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: rd_server_1b_ips
-      type: string
-    ps_server_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: ps_server_1b_names
-      type: list
-      description: Ps server names
-      entry_schema:
-        type: string
-    rd_server_1b_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: rd_server_1b_names
-      type: list
-      description: PD server names
-      entry_schema:
-        type: string
-    jsa_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: jsa_name
-      type: string
-      description: network name of jsa log network
-    osm_server_1c2_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: osm_server_1c2_image
-      type: string
-      description: Image for BE server
-    BE_osm_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: BE_osm_ips
-      type: string
-    packet_external_network_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: packet_external_network_name
-      type: string
-    BE_1c1_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: BE_1c1_image
-      type: string
-      description: Image for BE server
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: availability_zone_0
-      type: string
-      description: availabilityzone name
-    rd_server_1b_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: rd_server_1b_image
-      type: string
-      description: PD Image server
-    ps_server_1b_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: ps_server_1b_flavor
-      type: string
-      description: Flavor for PS server
-    ps_server_1b_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: ps_server_1b_image
-      type: string
-      description: Ps Image server
-    net:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: net
-      type: string
-    BE_1c1_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - nested2
-            source_type: HEAT
-            param_name: BE_1c1_flavor
-      type: string
-      description: Flavor for BE server
-  node_templates:
-    abstract_rd_server_1b_1:
-      type: org.openecomp.resource.abstract.nodes.rd_server_1b_1
-      directives:
-      - substitutable
-      properties:
-        port_ps_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - ps_server_1b_ips
-            - 0
-        compute_rd_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        vm_flavor_name:
-          get_input: rd_server_1b_flavor
-        port_ps_server_1b_port_network:
-        - get_input: net
-        port_ps_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: rd_server_1b_image
-        port_ps_server_1b_port_replacement_policy:
-        - AUTO
-        compute_rd_server_1b_name:
-        - get_input:
-          - rd_server_1b_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_rd_server_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    dependsOn_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: jsa_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: test_nested_all_patterns
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: test_nested_no_compute
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: test_nested_pattern_4
-          relationship: tosca.relationships.DependsOn
-    abstract_rd_server_1b:
-      type: org.openecomp.resource.abstract.nodes.rd_server_1b
-      directives:
-      - substitutable
-      properties:
-        port_rd_server_1b_port_network:
-        - get_input: net
-        compute_rd_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        vm_flavor_name:
-          get_input: rd_server_1b_flavor
-        port_rd_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: rd_server_1b_image
-        port_rd_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_rd_server_1b_name:
-        - get_input:
-          - rd_server_1b_names
-          - 0
-        port_rd_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - rd_server_1b_ips
-            - 0
-        port_rd_server_1b_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_rd_server_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    test_nested_pattern_4:
-      type: org.openecomp.resource.abstract.nodes.heat.pd_server
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested-pattern-4ServiceTemplate.yaml
-        p2:
-          get_attribute:
-          - test_nested_no_compute
-          - no_compute_attr_1
-        port_pd_server_port_2_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_port_2_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_port_1_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_port_1_mac_requirements:
-          mac_count_required:
-            is_required: false
-    test_nested_no_compute:
-      type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
-      directives:
-      - substitutable
-      properties:
-        p1:
-          get_attribute:
-          - test_nested_pattern_4
-          - pattern4_attr_1
-        service_template_filter:
-          substitute_service_template: nested-no-computeServiceTemplate.yaml
-    nested2_pattern_4:
-      type: org.openecomp.resource.abstract.nodes.heat.pd_server
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested-pattern-4ServiceTemplate.yaml
-        p2:
-          get_input: p2
-        port_pd_server_port_2_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_port_2_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_port_1_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_port_1_mac_requirements:
-          mac_count_required:
-            is_required: false
-    abstract_osm_server_1c2_0:
-      type: org.openecomp.resource.abstract.nodes.osm_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_osm_port_replacement_policy:
-        - AUTO
-        port_osm_port_network:
-        - packet_internal_network_2
-        compute_osm_server_1c2_name:
-        - get_input:
-          - osm_server_1c2_names
-          - 0
-        vm_flavor_name:
-          get_input: osm_server_1c2_flavor
-        port_osm_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_osm_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - BE_osm_ips
-            - 1
-        vm_image_name:
-          get_input: osm_server_1c2_image
-        port_osm_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_osm_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        service_template_filter:
-          substitute_service_template: Nested_osm_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_osm_server_1c2_osm_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_internal_network_2
-          relationship: tosca.relationships.network.LinksTo
-    abstract_osm_server_1c2_1:
-      type: org.openecomp.resource.abstract.nodes.osm_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_osm_port_replacement_policy:
-        - AUTO
-        port_osm_port_network:
-        - packet_external_network_2
-        compute_osm_server_1c2_name:
-        - get_input:
-          - osm_server_1c2_names
-          - 1
-        vm_flavor_name:
-          get_input: osm_server_1c2_flavor
-        port_osm_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_osm_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - BE_osm_ips
-            - 1
-        vm_image_name:
-          get_input: osm_server_1c2_image
-        port_osm_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_osm_server_1c2_metadata:
-        - connectivity_to_server_1c1_BE_1:
-            get_attribute:
-            - abstract_BE_1c1
-            - BE_1c1_accessIPv4
-          connectivity_to_pattern_4:
-            get_attribute:
-            - nested2_pattern_4
-            - pattern4_attr_1
-          connectivity_to_server_1c1_BE_2:
-            get_attribute:
-            - abstract_BE_1c1
-            - BE_1c1_accessIPv4
-          connectivity_to_rd_server_1b:
-            get_attribute:
-            - abstract_rd_server_1b
-            - rd_server_1b_accessIPv4
-        compute_osm_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        service_template_filter:
-          substitute_service_template: Nested_osm_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_osm_server_1c2_osm_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_external_network_2
-          relationship: tosca.relationships.network.LinksTo
-    packet_internal_network_2:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_internal_network_name
-    packet_external_network_2:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_external_network_name
-    abstract_BE_1c1:
-      type: org.openecomp.resource.abstract.nodes.BE_1c1
-      directives:
-      - substitutable
-      properties:
-        vm_flavor_name:
-          get_input: BE_1c1_flavor
-        port_BE_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_BE_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - BE_osm_ips
-            - 0
-        compute_BE_1c1_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        port_BE_port_network:
-        - packet_internal_network_2
-        port_BE_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: BE_1c1_image
-        compute_BE_1c1_name:
-        - get_input:
-          - BE_1c1_names
-          - 1
-        - get_input:
-          - BE_1c1_names
-          - 0
-        port_BE_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_BE_1c1ServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_BE_1c1_BE_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_internal_network_2
-          relationship: tosca.relationships.network.LinksTo
-    test_nested_all_patterns:
-      type: org.openecomp.resource.abstract.nodes.heat.nested1
-      directives:
-      - substitutable
-      properties:
-        p1:
-          get_attribute:
-          - test_nested_pattern_4
-          - pattern4_attr_1
-        service_template_filter:
-          substitute_service_template: nested1ServiceTemplate.yaml
-        p2:
-          get_attribute:
-          - test_nested_no_compute
-          - no_compute_attr_1
-  groups:
-    main_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/main.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-      members:
-      - dependsOn_network
-      - test_nested_pattern_4
-      - test_nested_no_compute
-      - test_nested_all_patterns
-    nested2_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/nested2.yml
-        description: nested1
-      members:
-      - nested2_pattern_4
-      - packet_internal_network_2
-      - packet_external_network_2
-      - abstract_rd_server_1b
-      - abstract_rd_server_1b_1
-      - abstract_osm_server_1c2_0
-      - abstract_osm_server_1c2_1
-      - abstract_BE_1c1
-  outputs:
-    all_pattern_attr_1:
-      description: all_pattern_attr_1
-      value:
-        get_attribute:
-        - abstract_osm_server_1c2_1
-        - osm_server_1c2_accessIPv4
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    p1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: p1\r
+      type: string\r
+      description: UID of osm network\r
+    p2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: p2\r
+      type: string\r
+      description: UID of osm network\r
+    rd_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: rd_server_1b_flavor\r
+      type: string\r
+      description: Flavor for PD server\r
+    BE_1c1_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: BE_1c1_names\r
+      type: list\r
+      description: BE1, BE2 server names\r
+      entry_schema:\r
+        type: string\r
+    ps_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: ps_server_1b_ips\r
+      type: string\r
+    packet_internal_network_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: packet_internal_network_name\r
+      type: string\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: list\r
+      description: BE1, BE2 server names\r
+      entry_schema:\r
+        type: string\r
+    osm_server_1c2_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: osm_server_1c2_names\r
+      type: list\r
+      description: BE1, BE2 server names\r
+      entry_schema:\r
+        type: string\r
+    osm_server_1c2_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: osm_server_1c2_flavor\r
+      type: string\r
+      description: Flavor for BE server\r
+    rd_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: rd_server_1b_ips\r
+      type: string\r
+    ps_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: ps_server_1b_names\r
+      type: list\r
+      description: Ps server names\r
+      entry_schema:\r
+        type: string\r
+    rd_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: rd_server_1b_names\r
+      type: list\r
+      description: PD server names\r
+      entry_schema:\r
+        type: string\r
+    jsa_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: jsa_name\r
+      type: string\r
+      description: network name of jsa log network\r
+    osm_server_1c2_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: osm_server_1c2_image\r
+      type: string\r
+      description: Image for BE server\r
+    BE_osm_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: BE_osm_ips\r
+      type: string\r
+    packet_external_network_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: packet_external_network_name\r
+      type: string\r
+    BE_1c1_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: BE_1c1_image\r
+      type: string\r
+      description: Image for BE server\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: availability_zone_0\r
+      type: string\r
+      description: availabilityzone name\r
+    rd_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: rd_server_1b_image\r
+      type: string\r
+      description: PD Image server\r
+    ps_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: ps_server_1b_flavor\r
+      type: string\r
+      description: Flavor for PS server\r
+    ps_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: ps_server_1b_image\r
+      type: string\r
+      description: Ps Image server\r
+    net:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: net\r
+      type: string\r
+    BE_1c1_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - nested2\r
+            source_type: HEAT\r
+            param_name: BE_1c1_flavor\r
+      type: string\r
+      description: Flavor for BE server\r
+  node_templates:\r
+    abstract_rd_server_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.rd_server_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_ps_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - ps_server_1b_ips\r
+            - 0\r
+        compute_rd_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        vm_flavor_name:\r
+          get_input: rd_server_1b_flavor\r
+        port_ps_server_1b_port_network:\r
+        - get_input: net\r
+        port_ps_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: rd_server_1b_image\r
+        port_ps_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        compute_rd_server_1b_name:\r
+        - get_input:\r
+          - rd_server_1b_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_rd_server_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    dependsOn_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: jsa_name\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: test_nested_all_patterns\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: test_nested_no_compute\r
+          relationship: tosca.relationships.DependsOn\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: test_nested_pattern_4\r
+          relationship: tosca.relationships.DependsOn\r
+    abstract_rd_server_1b:\r
+      type: org.openecomp.resource.abstract.nodes.rd_server_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_rd_server_1b_port_network:\r
+        - get_input: net\r
+        compute_rd_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        vm_flavor_name:\r
+          get_input: rd_server_1b_flavor\r
+        port_rd_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: rd_server_1b_image\r
+        port_rd_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_rd_server_1b_name:\r
+        - get_input:\r
+          - rd_server_1b_names\r
+          - 0\r
+        port_rd_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - rd_server_1b_ips\r
+            - 0\r
+        port_rd_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_rd_server_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    test_nested_pattern_4:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested-pattern-4ServiceTemplate.yaml\r
+        p2:\r
+          get_attribute:\r
+          - test_nested_no_compute\r
+          - no_compute_attr_1\r
+        port_pd_server_port_2_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_port_2_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_port_1_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_port_1_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+    test_nested_no_compute:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1:\r
+          get_attribute:\r
+          - test_nested_pattern_4\r
+          - pattern4_attr_1\r
+        service_template_filter:\r
+          substitute_service_template: nested-no-computeServiceTemplate.yaml\r
+    nested2_pattern_4:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested-pattern-4ServiceTemplate.yaml\r
+        p2:\r
+          get_input: p2\r
+        port_pd_server_port_2_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_port_2_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_port_1_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_port_1_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+    abstract_osm_server_1c2_0:\r
+      type: org.openecomp.resource.abstract.nodes.osm_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_osm_port_replacement_policy:\r
+        - AUTO\r
+        port_osm_port_network:\r
+        - packet_internal_network_2\r
+        compute_osm_server_1c2_name:\r
+        - get_input:\r
+          - osm_server_1c2_names\r
+          - 0\r
+        vm_flavor_name:\r
+          get_input: osm_server_1c2_flavor\r
+        port_osm_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_osm_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - BE_osm_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: osm_server_1c2_image\r
+        port_osm_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_osm_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_osm_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_osm_server_1c2_osm_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_internal_network_2\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_osm_server_1c2_1:\r
+      type: org.openecomp.resource.abstract.nodes.osm_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_osm_port_replacement_policy:\r
+        - AUTO\r
+        port_osm_port_network:\r
+        - packet_external_network_2\r
+        compute_osm_server_1c2_name:\r
+        - get_input:\r
+          - osm_server_1c2_names\r
+          - 1\r
+        vm_flavor_name:\r
+          get_input: osm_server_1c2_flavor\r
+        port_osm_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_osm_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - BE_osm_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: osm_server_1c2_image\r
+        port_osm_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_osm_server_1c2_metadata:\r
+        - connectivity_to_server_1c1_BE_1:\r
+            get_attribute:\r
+            - abstract_BE_1c1\r
+            - BE_1c1_accessIPv4\r
+          connectivity_to_pattern_4:\r
+            get_attribute:\r
+            - nested2_pattern_4\r
+            - pattern4_attr_1\r
+          connectivity_to_server_1c1_BE_2:\r
+            get_attribute:\r
+            - abstract_BE_1c1\r
+            - BE_1c1_accessIPv4\r
+          connectivity_to_rd_server_1b:\r
+            get_attribute:\r
+            - abstract_rd_server_1b\r
+            - rd_server_1b_accessIPv4\r
+        compute_osm_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_osm_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_osm_server_1c2_osm_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_external_network_2\r
+          relationship: tosca.relationships.network.LinksTo\r
+    packet_internal_network_2:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_internal_network_name\r
+    packet_external_network_2:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_external_network_name\r
+    abstract_BE_1c1:\r
+      type: org.openecomp.resource.abstract.nodes.BE_1c1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        vm_flavor_name:\r
+          get_input: BE_1c1_flavor\r
+        port_BE_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_BE_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - BE_osm_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - BE_osm_ips\r
+              - 0\r
+        compute_BE_1c1_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        port_BE_port_network:\r
+        - packet_internal_network_2\r
+        - packet_internal_network_2\r
+        port_BE_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        vm_image_name:\r
+          get_input: BE_1c1_image\r
+        compute_BE_1c1_name:\r
+        - get_input:\r
+          - BE_1c1_names\r
+          - 1\r
+        - get_input:\r
+          - BE_1c1_names\r
+          - 0\r
+        port_BE_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_BE_1c1ServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_BE_1c1_BE_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_internal_network_2\r
+          relationship: tosca.relationships.network.LinksTo\r
+    test_nested_all_patterns:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1:\r
+          get_attribute:\r
+          - test_nested_pattern_4\r
+          - pattern4_attr_1\r
+        service_template_filter:\r
+          substitute_service_template: nested1ServiceTemplate.yaml\r
+        p2:\r
+          get_attribute:\r
+          - test_nested_no_compute\r
+          - no_compute_attr_1\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - dependsOn_network\r
+      - test_nested_pattern_4\r
+      - test_nested_no_compute\r
+      - test_nested_all_patterns\r
+    nested2_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested2.yml\r
+        description: nested1\r
+      members:\r
+      - nested2_pattern_4\r
+      - packet_internal_network_2\r
+      - packet_external_network_2\r
+      - abstract_rd_server_1b\r
+      - abstract_rd_server_1b_1\r
+      - abstract_osm_server_1c2_0\r
+      - abstract_osm_server_1c2_1\r
+      - abstract_BE_1c1\r
+  outputs:\r
+    all_pattern_attr_1:\r
+      description: all_pattern_attr_1\r
+      value:\r
+        get_attribute:\r
+        - abstract_osm_server_1c2_1\r
+        - osm_server_1c2_accessIPv4\r
\ No newline at end of file
index 5b9038c..6a5d7e0 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: nested1
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    p1:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    p2:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    cmaui_1c1_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    ps_server_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    pd_server_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: PD server names
-      entry_schema:
-        type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    oam_server_1c2_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    cmaui_1c1_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    ps_server_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: Ps server names
-      entry_schema:
-        type: string
-    cmaui_1c1_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    pd_server_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PD server
-    pd_server_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    packet_internal_network_1_name:
-      hidden: false
-      immutable: false
-      type: string
-    packet_external_network_1_name:
-      hidden: false
-      immutable: false
-      type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      type: string
-      description: availabilityzone name
-    ps_server_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PS server
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      type: string
-    ps_server_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Ps Image server
-    net:
-      hidden: false
-      immutable: false
-      type: string
-    pd_server_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: PD Image server
-    oam_server_1c2_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    oam_server_1c2_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_pd_server_1b_1:
-      type: org.openecomp.resource.abstract.nodes.pd_server_1b_1
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_1b_name:
-        - get_input:
-          - pd_server_1b_names
-          - 0
-        vm_flavor_name:
-          get_input: pd_server_1b_flavor
-        vm_image_name:
-          get_input: pd_server_1b_image
-        port_pd_server_1b_port_replacement_policy:
-        - AUTO
-        port_pd_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - pd_server_1b_ips
-            - 0
-        port_pd_server_1b_port_network:
-        - get_input: net
-        compute_pd_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        port_pd_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_pd_server_1b_1ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_cmaui_1c1:
-      type: org.openecomp.resource.abstract.nodes.cmaui_1c1
-      directives:
-      - substitutable
-      properties:
-        port_cmaui_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        port_cmaui_port_network:
-        - packet_external_network_1
-        compute_cmaui_1c1_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        vm_flavor_name:
-          get_input: cmaui_1c1_flavor
-        port_cmaui_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_cmaui_port_replacement_policy:
-        - AUTO
-        vm_image_name:
-          get_input: cmaui_1c1_image
-        port_cmaui_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_cmaui_1c1_name:
-        - get_input:
-          - cmaui_1c1_names
-          - 1
-        - get_input:
-          - cmaui_1c1_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_cmaui_1c1_cmaui_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_external_network_1
-          relationship: tosca.relationships.network.LinksTo
-    nested1_pattern_4:
-      type: org.openecomp.resource.abstract.nodes.heat.pd_server
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested-pattern-4ServiceTemplate.yaml
-        p2:
-          get_input: p2
-        port_pd_server_port_2_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_port_2_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_port_1_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_pd_server_port_1_mac_requirements:
-          mac_count_required:
-            is_required: false
-    abstract_pd_server_1b:
-      type: org.openecomp.resource.abstract.nodes.pd_server_1b
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_1b_name:
-        - get_input:
-          - pd_server_1b_names
-          - 1
-        port_ps_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - ps_server_1b_ips
-            - 0
-        vm_flavor_name:
-          get_input: pd_server_1b_flavor
-        port_ps_server_1b_port_network:
-        - get_input: net
-        port_ps_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_server_1b_image
-        port_ps_server_1b_port_replacement_policy:
-        - AUTO
-        compute_pd_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        service_template_filter:
-          substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    packet_internal_network_1:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_internal_network_1_name
-    abstract_oam_server_1c2_1:
-      type: org.openecomp.resource.abstract.nodes.oam_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_oam_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_oam_server_1c2_name:
-        - get_input:
-          - oam_server_1c2_names
-          - 1
-        port_oam_port_network:
-        - packet_external_network_1
-        vm_flavor_name:
-          get_input: oam_server_1c2_flavor
-        compute_oam_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        port_oam_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 1
-        vm_image_name:
-          get_input: oam_server_1c2_image
-        compute_oam_server_1c2_metadata:
-        - connectivity_to_pattern_4:
-            get_attribute:
-            - nested1_pattern_4
-            - pattern4_attr_1
-          connectivity_to_server_1c1_cmaui_1:
-            get_attribute:
-            - abstract_cmaui_1c1
-            - cmaui_1c1_accessIPv4
-          connectivity_to_pd_server_1b:
-            get_attribute:
-            - abstract_pd_server_1b_1
-            - pd_server_1b_accessIPv4
-          connectivity_to_server_1c1_cmaui_2:
-            get_attribute:
-            - abstract_cmaui_1c1
-            - cmaui_1c1_accessIPv4
-        port_oam_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_oam_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_oam_server_1c2_oam_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_external_network_1
-          relationship: tosca.relationships.network.LinksTo
-    abstract_oam_server_1c2_0:
-      type: org.openecomp.resource.abstract.nodes.oam_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_oam_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_oam_server_1c2_name:
-        - get_input:
-          - oam_server_1c2_names
-          - 0
-        port_oam_port_network:
-        - packet_internal_network_1
-        vm_flavor_name:
-          get_input: oam_server_1c2_flavor
-        compute_oam_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        port_oam_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 1
-        vm_image_name:
-          get_input: oam_server_1c2_image
-        port_oam_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_oam_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_oam_server_1c2_oam_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_internal_network_1
-          relationship: tosca.relationships.network.LinksTo
-    packet_external_network_1:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_external_network_1_name
-  groups:
-    nested1_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/nested1.yml
-        description: nested1
-      members:
-      - nested1_pattern_4
-      - packet_internal_network_1
-      - packet_external_network_1
-      - abstract_oam_server_1c2_0
-      - abstract_oam_server_1c2_1
-      - abstract_pd_server_1b
-      - abstract_pd_server_1b_1
-      - abstract_cmaui_1c1
-  outputs:
-    all_pattern_attr_1:
-      description: all_pattern_attr_1
-      value:
-        get_attribute:
-        - abstract_oam_server_1c2_1
-        - oam_server_1c2_accessIPv4
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.nested1
-    capabilities:
-      memory_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - memory_server_pd
-      binding_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - binding_pd_server_1b_ps_server_1b_port
-      disk.capacity_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.capacity_pd_server_1b
-      disk.capacity_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.capacity_pd_server_1b
-      disk.read.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.requests_cmaui_1c1
-      disk.read.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.requests_cmaui_1c1
-      disk.device.read.requests.rate_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.read.requests.rate_server_pd
-      feature_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - feature_pd_server_1b_pd_server_1b_port
-      network.outgoing.packets.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.packets.rate_oam_server_1c2_oam_port
-      network.outgoing.packets.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.packets.rate_oam_server_1c2_oam_port
-      disk.device.iops_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.iops_pd_server_1b
-      disk.read.requests_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.read.requests_server_pd
-      disk.device.write.bytes_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.write.bytes_server_pd
-      cpu.delta_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - cpu.delta_server_pd
-      disk.device.iops_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.iops_pd_server_1b
-      scalable_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - scalable_oam_server_1c2
-      scalable_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - scalable_oam_server_1c2
-      network.outgoing.packets.rate_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.outgoing.packets.rate_pd_server_1b_ps_server_1b_port
-      disk.device.read.requests_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.read.requests_server_pd
-      feature_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - feature_pd_server_port_1
-      network.outpoing.packets_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outpoing.packets_pd_server_port_1
-      disk.device.write.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests_cmaui_1c1
-      disk.device.write.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests_cmaui_1c1
-      disk.device.read.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes_cmaui_1c1
-      disk.device.read.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes_cmaui_1c1
-      disk.device.capacity_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.capacity_oam_server_1c2
-      disk.capacity_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.capacity_server_pd
-      disk.device.capacity_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.capacity_oam_server_1c2
-      network.outpoing.packets_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outpoing.packets_oam_server_1c2_oam_port
-      network.outpoing.packets_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outpoing.packets_oam_server_1c2_oam_port
-      binding_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1_cmaui_port
-      binding_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1_cmaui_port
-      end_point_packet_internal_network_1:
-      - packet_internal_network_1
-      - end_point
-      memory_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory_oam_server_1c2
-      memory_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory_oam_server_1c2
-      disk.write.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.bytes_oam_server_1c2
-      disk.write.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.bytes_oam_server_1c2
-      network.incoming.bytes.rate_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.bytes.rate_pd_server_port_2
-      network.incoming.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes_cmaui_1c1_cmaui_port
-      network.incoming.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes_cmaui_1c1_cmaui_port
-      network.incoming.packets_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.packets_pd_server_port_2
-      os_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - os_oam_server_1c2
-      disk.device.iops_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.iops_cmaui_1c1
-      disk.device.iops_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.iops_cmaui_1c1
-      network.outgoing.packets.rate_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.outgoing.packets.rate_pd_server_1b_pd_server_1b_port
-      memory.resident_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - memory.resident_pd_server_1b
-      disk.allocation_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.allocation_server_pd
-      os_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - os_oam_server_1c2
-      memory.resident_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - memory.resident_pd_server_1b
-      disk.device.write.bytes.rate_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.write.bytes.rate_server_pd
-      feature_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - feature_oam_server_1c2
-      network.incoming.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.packets.rate_cmaui_1c1_cmaui_port
-      network.incoming.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.packets.rate_cmaui_1c1_cmaui_port
-      network.outgoing.bytes_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.bytes_oam_server_1c2_oam_port
-      feature_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - feature_oam_server_1c2
-      network.outgoing.bytes_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.bytes_oam_server_1c2_oam_port
-      disk.device.capacity_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.capacity_cmaui_1c1
-      host_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - host_server_pd
-      attachment_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - attachment_oam_server_1c2_oam_port
-      disk.capacity_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.capacity_oam_server_1c2
-      disk.capacity_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.capacity_oam_server_1c2
-      endpoint_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - endpoint_server_pd
-      attachment_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - attachment_oam_server_1c2_oam_port
-      disk.device.read.bytes.rate_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.read.bytes.rate_server_pd
-      disk.write.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.bytes.rate_oam_server_1c2
-      disk.write.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.bytes.rate_oam_server_1c2
-      disk.device.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.usage_cmaui_1c1
-      disk.device.capacity_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.capacity_cmaui_1c1
-      disk.device.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.usage_cmaui_1c1
-      disk.device.latency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.latency_oam_server_1c2
-      disk.device.latency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.latency_oam_server_1c2
-      disk.write.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.requests.rate_cmaui_1c1
-      disk.write.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.requests.rate_cmaui_1c1
-      cpu_util_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu_util_cmaui_1c1
-      disk.allocation_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.allocation_oam_server_1c2
-      disk.allocation_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.allocation_oam_server_1c2
-      cpu_util_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu_util_cmaui_1c1
-      binding_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - binding_pd_server_1b_pd_server_1b_port
-      disk.device.latency_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.latency_server_pd
-      disk.write.requests_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.write.requests_pd_server_1b
-      disk.read.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.bytes_oam_server_1c2
-      network.outpoing.packets_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outpoing.packets_pd_server_port_2
-      disk.read.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.bytes_oam_server_1c2
-      disk.write.requests_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.write.requests_pd_server_1b
-      binding_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - binding_oam_server_1c2_oam_port
-      binding_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - binding_oam_server_1c2_oam_port
-      disk.read.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.bytes.rate_cmaui_1c1
-      disk.read.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.bytes.rate_cmaui_1c1
-      host_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - host_cmaui_1c1
-      host_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - host_cmaui_1c1
-      vcpus_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - vcpus_pd_server_1b
-      vcpus_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - vcpus_pd_server_1b
-      disk.latency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.latency_oam_server_1c2
-      network.incoming.bytes.rate_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.bytes.rate_pd_server_port_1
-      disk.latency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.latency_oam_server_1c2
-      disk.device.usage_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.usage_server_pd
-      disk.root.size_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.root.size_oam_server_1c2
-      disk.root.size_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.root.size_oam_server_1c2
-      disk.device.write.requests_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.write.requests_pd_server_1b
-      cpu_util_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - cpu_util_server_pd
-      disk.device.write.requests_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.write.requests_pd_server_1b
-      network.incoming.bytes.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.bytes.rate_oam_server_1c2_oam_port
-      network.outgoing.bytes.rate_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outgoing.bytes.rate_pd_server_port_1
-      network.incoming.bytes.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.bytes.rate_oam_server_1c2_oam_port
-      memory.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory.usage_cmaui_1c1
-      memory.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory.usage_cmaui_1c1
-      end_point_packet_external_network_1:
-      - packet_external_network_1
-      - end_point
-      binding_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1
-      binding_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1
-      disk.device.iops_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.iops_oam_server_1c2
-      disk.device.iops_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.iops_oam_server_1c2
-      network.incoming.bytes_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.bytes_pd_server_port_2
-      forwarder_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - forwarder_oam_server_1c2_oam_port
-      forwarder_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - forwarder_oam_server_1c2_oam_port
-      binding_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - binding_oam_server_1c2
-      binding_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - binding_oam_server_1c2
-      disk.device.read.bytes.rate_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.read.bytes.rate_pd_server_1b
-      disk.write.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.requests_oam_server_1c2
-      disk.write.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.requests_oam_server_1c2
-      disk.device.read.bytes.rate_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.read.bytes.rate_pd_server_1b
-      network.incoming.bytes_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.incoming.bytes_pd_server_1b_ps_server_1b_port
-      network.outgoing.packets.rate_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outgoing.packets.rate_pd_server_port_2
-      disk.usage_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.usage_pd_server_1b
-      disk.write.bytes.rate_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.write.bytes.rate_pd_server_1b
-      disk.write.bytes.rate_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.write.bytes.rate_pd_server_1b
-      disk.usage_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.usage_pd_server_1b
-      network.incoming.packets_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.packets_cmaui_1c1_cmaui_port
-      disk.device.write.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.requests_oam_server_1c2
-      disk.allocation_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.allocation_cmaui_1c1
-      disk.device.write.bytes.rate_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.write.bytes.rate_pd_server_1b
-      disk.device.write.bytes.rate_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.write.bytes.rate_pd_server_1b
-      network.incoming.packets_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.packets_cmaui_1c1_cmaui_port
-      feature_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - feature_pd_server_1b
-      disk.device.write.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests.rate_cmaui_1c1
-      disk.device.write.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests.rate_cmaui_1c1
-      feature_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - feature_pd_server_1b
-      disk.device.write.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.requests_oam_server_1c2
-      disk.device.read.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.requests_oam_server_1c2
-      disk.device.write.bytes_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.write.bytes_pd_server_1b
-      disk.device.read.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.requests_oam_server_1c2
-      disk.device.write.bytes_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.write.bytes_pd_server_1b
-      disk.device.read.bytes_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.read.bytes_server_pd
-      network.incoming.packets.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.packets.rate_oam_server_1c2_oam_port
-      network.incoming.packets.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.packets.rate_oam_server_1c2_oam_port
-      disk.iops_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.iops_pd_server_1b
-      disk.iops_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.iops_pd_server_1b
-      disk.allocation_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.allocation_cmaui_1c1
-      disk.device.allocation_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.allocation_oam_server_1c2
-      disk.device.allocation_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.allocation_oam_server_1c2
-      disk.write.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.requests_cmaui_1c1
-      disk.write.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.requests_cmaui_1c1
-      link_packet_external_network_1:
-      - packet_external_network_1
-      - link
-      network.outgoing.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
-      network.incoming.bytes_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.bytes_pd_server_port_1
-      cpu_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu_cmaui_1c1
-      network.outgoing.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
-      cpu_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu_cmaui_1c1
-      network.outpoing.packets_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.outpoing.packets_pd_server_1b_ps_server_1b_port
-      cpu_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu_oam_server_1c2
-      cpu_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu_oam_server_1c2
-      disk.write.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.requests.rate_oam_server_1c2
-      disk.device.read.bytes_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.read.bytes_pd_server_1b
-      attachment_packet_external_network_1:
-      - packet_external_network_1
-      - attachment
-      disk.device.read.bytes_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.read.bytes_pd_server_1b
-      feature_packet_internal_network_1:
-      - packet_internal_network_1
-      - feature
-      disk.iops_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.iops_server_pd
-      disk.write.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.requests.rate_oam_server_1c2
-      disk.read.bytes_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.read.bytes_pd_server_1b
-      disk.device.write.requests_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.write.requests_server_pd
-      disk.read.bytes_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.read.bytes_pd_server_1b
-      endpoint_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - endpoint_pd_server_1b
-      endpoint_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - endpoint_pd_server_1b
-      network.incoming.bytes_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.incoming.bytes_pd_server_1b_pd_server_1b_port
-      instance_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - instance_server_pd
-      disk.latency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.latency_cmaui_1c1
-      memory_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - memory_pd_server_1b
-      disk.latency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.latency_cmaui_1c1
-      memory_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - memory_pd_server_1b
-      network.outgoing.packets.rate_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outgoing.packets.rate_pd_server_port_1
-      feature_packet_external_network_1:
-      - packet_external_network_1
-      - feature
-      disk.device.latency_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.latency_pd_server_1b
-      disk.device.latency_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.latency_pd_server_1b
-      disk.read.bytes_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.read.bytes_server_pd
-      disk.device.iops_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.iops_server_pd
-      network.incoming.packets_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.packets_oam_server_1c2_oam_port
-      network.incoming.packets_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.packets_oam_server_1c2_oam_port
-      network.incoming.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
-      network.incoming.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
-      disk.iops_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.iops_cmaui_1c1
-      disk.iops_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.iops_cmaui_1c1
-      disk.device.read.requests_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.read.requests_pd_server_1b
-      disk.device.read.requests_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.read.requests_pd_server_1b
-      forwarder_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - forwarder_pd_server_port_2
-      disk.device.write.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.bytes_oam_server_1c2
-      disk.device.write.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.bytes_oam_server_1c2
-      disk.write.bytes_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.write.bytes_server_pd
-      feature_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - feature_pd_server_port_2
-      disk.device.write.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.bytes.rate_oam_server_1c2
-      disk.read.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.bytes_cmaui_1c1
-      disk.device.write.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.bytes.rate_oam_server_1c2
-      disk.read.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.bytes_cmaui_1c1
-      disk.iops_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.iops_oam_server_1c2
-      forwarder_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - forwarder_pd_server_1b_pd_server_1b_port
-      disk.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.usage_oam_server_1c2
-      feature_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1
-      disk.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.usage_oam_server_1c2
-      feature_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1
-      network.outpoing.packets_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.outpoing.packets_pd_server_1b_pd_server_1b_port
-      network.outgoing.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes_cmaui_1c1_cmaui_port
-      disk.device.capacity_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.capacity_server_pd
-      disk.iops_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.iops_oam_server_1c2
-      network.outgoing.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes_cmaui_1c1_cmaui_port
-      network.outgoing.bytes_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outgoing.bytes_pd_server_port_1
-      binding_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - binding_server_pd
-      cpu_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - cpu_pd_server_1b
-      feature_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - feature_server_pd
-      disk.device.write.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.requests.rate_oam_server_1c2
-      disk.device.write.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.requests.rate_oam_server_1c2
-      disk.read.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.bytes.rate_oam_server_1c2
-      memory.usage_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - memory.usage_server_pd
-      scalable_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - scalable_server_pd
-      disk.read.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.bytes.rate_oam_server_1c2
-      cpu_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - cpu_pd_server_1b
-      disk.usage_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.usage_server_pd
-      network.outgoing.bytes_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outgoing.bytes_pd_server_port_2
-      vcpus_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - vcpus_server_pd
-      link_packet_internal_network_1:
-      - packet_internal_network_1
-      - link
-      disk.write.bytes_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.write.bytes_pd_server_1b
-      disk.write.bytes_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.write.bytes_pd_server_1b
-      disk.device.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.usage_oam_server_1c2
-      network.incoming.packets.rate_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.packets.rate_pd_server_port_2
-      disk.device.write.requests.rate_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.write.requests.rate_pd_server_1b
-      disk.device.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.usage_oam_server_1c2
-      forwarder_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - forwarder_pd_server_port_1
-      disk.latency_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.latency_server_pd
-      disk.device.write.requests.rate_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.write.requests.rate_pd_server_1b
-      attachment_packet_internal_network_1:
-      - packet_internal_network_1
-      - attachment
-      disk.write.requests.rate_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.write.requests.rate_server_pd
-      os_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - os_server_pd
-      cpu_util_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu_util_oam_server_1c2
-      cpu_util_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu_util_oam_server_1c2
-      network.incoming.packets_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.incoming.packets_pd_server_1b_ps_server_1b_port
-      network.outgoing.bytes.rate_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.outgoing.bytes.rate_pd_server_1b_ps_server_1b_port
-      network.outgoing.bytes_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.outgoing.bytes_pd_server_1b_pd_server_1b_port
-      attachment_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - attachment_pd_server_port_1
-      memory.resident_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory.resident_oam_server_1c2
-      memory.resident_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory.resident_oam_server_1c2
-      disk.device.allocation_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.allocation_cmaui_1c1
-      disk.device.allocation_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.allocation_cmaui_1c1
-      disk.root.size_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.root.size_server_pd
-      vcpus_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - vcpus_cmaui_1c1
-      feature_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1_cmaui_port
-      feature_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1_cmaui_port
-      instance_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - instance_cmaui_1c1
-      instance_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - instance_cmaui_1c1
-      network.outgoing.bytes.rate_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.outgoing.bytes.rate_pd_server_1b_pd_server_1b_port
-      attachment_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - attachment_pd_server_port_2
-      disk.device.read.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.requests.rate_oam_server_1c2
-      disk.device.read.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.requests.rate_oam_server_1c2
-      os_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - os_pd_server_1b
-      os_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - os_pd_server_1b
-      disk.root.size_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.root.size_pd_server_1b
-      endpoint_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - endpoint_cmaui_1c1
-      network.incoming.packets.rate_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.incoming.packets.rate_pd_server_1b_ps_server_1b_port
-      host_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - host_pd_server_1b
-      disk.root.size_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.root.size_pd_server_1b
-      endpoint_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - endpoint_cmaui_1c1
-      host_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - host_pd_server_1b
-      vcpus_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - vcpus_cmaui_1c1
-      forwarder_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - forwarder_cmaui_1c1_cmaui_port
-      forwarder_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - forwarder_cmaui_1c1_cmaui_port
-      disk.allocation_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.allocation_pd_server_1b
-      disk.allocation_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.allocation_pd_server_1b
-      attachment_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - attachment_pd_server_1b_ps_server_1b_port
-      disk.device.read.requests.rate_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.read.requests.rate_pd_server_1b
-      disk.device.read.requests.rate_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.read.requests.rate_pd_server_1b
-      disk.write.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.bytes.rate_cmaui_1c1
-      disk.write.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.bytes.rate_cmaui_1c1
-      memory.resident_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - memory.resident_server_pd
-      network.outgoing.bytes.rate_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.outgoing.bytes.rate_pd_server_port_2
-      network.outgoing.bytes_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.outgoing.bytes_pd_server_1b_ps_server_1b_port
-      disk.device.allocation_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.allocation_server_pd
-      network.outpoing.packets_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outpoing.packets_cmaui_1c1_cmaui_port
-      network.outpoing.packets_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outpoing.packets_cmaui_1c1_cmaui_port
-      disk.read.bytes.rate_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.read.bytes.rate_pd_server_1b
-      disk.read.bytes.rate_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.read.bytes.rate_pd_server_1b
-      memory.usage_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - memory.usage_pd_server_1b
-      memory.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory.usage_oam_server_1c2
-      memory.usage_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - memory.usage_pd_server_1b
-      memory.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory.usage_oam_server_1c2
-      disk.read.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.requests_oam_server_1c2
-      disk.latency_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.latency_pd_server_1b
-      disk.read.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.requests_oam_server_1c2
-      disk.latency_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.latency_pd_server_1b
-      memory.resident_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory.resident_cmaui_1c1
-      memory.resident_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory.resident_cmaui_1c1
-      os_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - os_cmaui_1c1
-      os_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - os_cmaui_1c1
-      disk.ephemeral.size_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.ephemeral.size_server_pd
-      instance_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - instance_oam_server_1c2
-      instance_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - instance_oam_server_1c2
-      memory_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory_cmaui_1c1
-      network.incoming.bytes.rate_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - network.incoming.bytes.rate_pd_server_1b_ps_server_1b_port
-      disk.device.write.requests.rate_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.device.write.requests.rate_server_pd
-      disk.write.requests.rate_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.write.requests.rate_pd_server_1b
-      disk.write.requests.rate_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.write.requests.rate_pd_server_1b
-      memory_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory_cmaui_1c1
-      disk.read.bytes.rate_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.read.bytes.rate_server_pd
-      vcpus_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - vcpus_oam_server_1c2
-      vcpus_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - vcpus_oam_server_1c2
-      disk.device.allocation_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.allocation_pd_server_1b
-      disk.device.allocation_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.allocation_pd_server_1b
-      disk.ephemeral.size_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.ephemeral.size_cmaui_1c1
-      disk.ephemeral.size_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.ephemeral.size_cmaui_1c1
-      disk.root.size_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.root.size_cmaui_1c1
-      disk.root.size_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.root.size_cmaui_1c1
-      disk.read.requests_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.read.requests_pd_server_1b
-      disk.device.write.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes.rate_cmaui_1c1
-      disk.read.requests_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.read.requests_pd_server_1b
-      cpu_util_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - cpu_util_pd_server_1b
-      cpu_util_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - cpu_util_pd_server_1b
-      disk.write.requests_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.write.requests_server_pd
-      forwarder_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - forwarder_pd_server_1b_ps_server_1b_port
-      disk.device.write.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes_cmaui_1c1
-      disk.device.write.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes.rate_cmaui_1c1
-      disk.device.write.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes_cmaui_1c1
-      host_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - host_oam_server_1c2
-      host_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - host_oam_server_1c2
-      cpu_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - cpu_server_pd
-      disk.device.read.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests_cmaui_1c1
-      disk.device.read.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests_cmaui_1c1
-      binding_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - binding_pd_server_1b
-      binding_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - binding_pd_server_1b
-      binding_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - binding_pd_server_port_2
-      disk.device.read.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes.rate_cmaui_1c1
-      disk.device.read.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes.rate_cmaui_1c1
-      attachment_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - attachment_pd_server_1b_pd_server_1b_port
-      cpu.delta_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu.delta_oam_server_1c2
-      disk.ephemeral.size_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.ephemeral.size_pd_server_1b
-      disk.ephemeral.size_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.ephemeral.size_pd_server_1b
-      disk.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.usage_cmaui_1c1
-      disk.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.usage_cmaui_1c1
-      network.incoming.bytes_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.bytes_oam_server_1c2_oam_port
-      network.incoming.bytes_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.bytes_oam_server_1c2_oam_port
-      disk.write.bytes.rate_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - disk.write.bytes.rate_server_pd
-      attachment_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - attachment_cmaui_1c1_cmaui_port
-      network.outgoing.bytes.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.bytes.rate_oam_server_1c2_oam_port
-      instance_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - instance_pd_server_1b
-      disk.device.capacity_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.capacity_pd_server_1b
-      network.outgoing.bytes.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.bytes.rate_oam_server_1c2_oam_port
-      instance_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - instance_pd_server_1b
-      disk.device.capacity_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.capacity_pd_server_1b
-      disk.capacity_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.capacity_cmaui_1c1
-      network.outgoing.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
-      network.outgoing.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
-      attachment_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - attachment_cmaui_1c1_cmaui_port
-      disk.capacity_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.capacity_cmaui_1c1
-      disk.ephemeral.size_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.ephemeral.size_oam_server_1c2
-      disk.ephemeral.size_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.ephemeral.size_oam_server_1c2
-      disk.device.read.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests.rate_cmaui_1c1
-      network.incoming.packets.rate_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.incoming.packets.rate_pd_server_1b_pd_server_1b_port
-      disk.device.read.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.bytes_oam_server_1c2
-      disk.device.read.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.bytes_oam_server_1c2
-      disk.device.read.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests.rate_cmaui_1c1
-      cpu.delta_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu.delta_oam_server_1c2
-      disk.device.read.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.bytes.rate_oam_server_1c2
-      disk.device.usage_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - disk.device.usage_pd_server_1b
-      disk.device.usage_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - disk.device.usage_pd_server_1b
-      network.incoming.packets.rate_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.packets.rate_pd_server_port_1
-      disk.device.read.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.bytes.rate_oam_server_1c2
-      disk.write.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.bytes_cmaui_1c1
-      disk.write.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.bytes_cmaui_1c1
-      feature_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - feature_oam_server_1c2_oam_port
-      feature_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - feature_oam_server_1c2_oam_port
-      feature_nested1_pattern_4:
-      - nested1_pattern_4
-      - feature
-      network.incoming.packets_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - network.incoming.packets_pd_server_port_1
-      disk.device.latency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.latency_cmaui_1c1
-      scalable_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - scalable_cmaui_1c1
-      disk.device.latency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.latency_cmaui_1c1
-      scalable_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - scalable_cmaui_1c1
-      cpu.delta_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu.delta_cmaui_1c1
-      cpu.delta_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu.delta_cmaui_1c1
-      scalable_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - scalable_pd_server_1b
-      scalable_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - scalable_pd_server_1b
-      cpu.delta_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - cpu.delta_pd_server_1b
-      cpu.delta_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - cpu.delta_pd_server_1b
-      network.incoming.packets_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.incoming.packets_pd_server_1b_pd_server_1b_port
-      binding_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - binding_pd_server_port_1
-      network.incoming.bytes.rate_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - network.incoming.bytes.rate_pd_server_1b_pd_server_1b_port
-      feature_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - feature_pd_server_1b_ps_server_1b_port
-      endpoint_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - endpoint_oam_server_1c2
-      endpoint_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - endpoint_oam_server_1c2
-    requirements:
-      dependency_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - dependency_oam_server_1c2_oam_port
-      dependency_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - dependency_oam_server_1c2_oam_port
-      dependency_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - dependency_pd_server_port_1
-      link_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - link_pd_server_port_2
-      dependency_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - dependency_pd_server_1b_pd_server_1b_port
-      dependency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - dependency_oam_server_1c2
-      dependency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - dependency_oam_server_1c2
-      local_storage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - local_storage_oam_server_1c2
-      local_storage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - local_storage_oam_server_1c2
-      dependency_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1_cmaui_port
-      dependency_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - dependency_server_pd
-      dependency_pd_server_port_2_nested1_pattern_4:
-      - nested1_pattern_4
-      - dependency_pd_server_port_2
-      dependency_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1_cmaui_port
-      dependency_packet_internal_network_1:
-      - packet_internal_network_1
-      - dependency
-      link_pd_server_port_1_nested1_pattern_4:
-      - nested1_pattern_4
-      - link_pd_server_port_1
-      dependency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1
-      local_storage_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - local_storage_pd_server_1b
-      local_storage_server_pd_nested1_pattern_4:
-      - nested1_pattern_4
-      - local_storage_server_pd
-      local_storage_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - local_storage_pd_server_1b
-      dependency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1
-      link_pd_server_1b_port_1:
-      - abstract_pd_server_1b_1
-      - link_pd_server_1b_pd_server_1b_port
-      link_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - link_pd_server_1b_ps_server_1b_port
-      dependency_packet_external_network_1:
-      - packet_external_network_1
-      - dependency
-      dependency_ps_server_1b_port_1:
-      - abstract_pd_server_1b
-      - dependency_pd_server_1b_ps_server_1b_port
-      local_storage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - local_storage_cmaui_1c1
-      local_storage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - local_storage_cmaui_1c1
-      dependency_server_1b_pd_1:
-      - abstract_pd_server_1b_1
-      - dependency_pd_server_1b
-      dependency_nested1_pattern_4:
-      - nested1_pattern_4
-      - dependency
-      dependency_server_1b_pd_2:
-      - abstract_pd_server_1b
-      - dependency_pd_server_1b
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    p1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    p2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    cmaui_1c1_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    ps_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    pd_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: PD server names\r
+      entry_schema:\r
+        type: string\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    oam_server_1c2_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    cmaui_1c1_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    ps_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Ps server names\r
+      entry_schema:\r
+        type: string\r
+    cmaui_1c1_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    pd_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PD server\r
+    pd_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    packet_internal_network_1_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    packet_external_network_1_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availabilityzone name\r
+    ps_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PS server\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    ps_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Ps Image server\r
+    net:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    pd_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: PD Image server\r
+    oam_server_1c2_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    oam_server_1c2_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_pd_server_1b_1:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server_1b_1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_1b_name:\r
+        - get_input:\r
+          - pd_server_1b_names\r
+          - 0\r
+        vm_flavor_name:\r
+          get_input: pd_server_1b_flavor\r
+        vm_image_name:\r
+          get_input: pd_server_1b_image\r
+        port_pd_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_pd_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - pd_server_1b_ips\r
+            - 0\r
+        port_pd_server_1b_port_network:\r
+        - get_input: net\r
+        compute_pd_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_pd_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_server_1b_1ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_cmaui_1c1:\r
+      type: org.openecomp.resource.abstract.nodes.cmaui_1c1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_cmaui_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        port_cmaui_port_network:\r
+        - packet_external_network_1\r
+        - packet_external_network_1\r
+        compute_cmaui_1c1_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        vm_flavor_name:\r
+          get_input: cmaui_1c1_flavor\r
+        port_cmaui_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_cmaui_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_image_name:\r
+          get_input: cmaui_1c1_image\r
+        port_cmaui_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        compute_cmaui_1c1_name:\r
+        - get_input:\r
+          - cmaui_1c1_names\r
+          - 1\r
+        - get_input:\r
+          - cmaui_1c1_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_cmaui_1c1_cmaui_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_external_network_1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    nested1_pattern_4:\r
+      type: org.openecomp.resource.abstract.nodes.heat.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested-pattern-4ServiceTemplate.yaml\r
+        p2:\r
+          get_input: p2\r
+        port_pd_server_port_2_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_port_2_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_port_1_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_pd_server_port_1_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+    abstract_pd_server_1b:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_1b_name:\r
+        - get_input:\r
+          - pd_server_1b_names\r
+          - 1\r
+        port_ps_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - ps_server_1b_ips\r
+            - 0\r
+        vm_flavor_name:\r
+          get_input: pd_server_1b_flavor\r
+        port_ps_server_1b_port_network:\r
+        - get_input: net\r
+        port_ps_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_server_1b_image\r
+        port_ps_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        compute_pd_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    packet_internal_network_1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_internal_network_1_name\r
+    abstract_oam_server_1c2_1:\r
+      type: org.openecomp.resource.abstract.nodes.oam_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_oam_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_oam_server_1c2_name:\r
+        - get_input:\r
+          - oam_server_1c2_names\r
+          - 1\r
+        port_oam_port_network:\r
+        - packet_external_network_1\r
+        vm_flavor_name:\r
+          get_input: oam_server_1c2_flavor\r
+        compute_oam_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_oam_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: oam_server_1c2_image\r
+        compute_oam_server_1c2_metadata:\r
+        - connectivity_to_pattern_4:\r
+            get_attribute:\r
+            - nested1_pattern_4\r
+            - pattern4_attr_1\r
+          connectivity_to_server_1c1_cmaui_1:\r
+            get_attribute:\r
+            - abstract_cmaui_1c1\r
+            - cmaui_1c1_accessIPv4\r
+          connectivity_to_pd_server_1b:\r
+            get_attribute:\r
+            - abstract_pd_server_1b_1\r
+            - pd_server_1b_accessIPv4\r
+          connectivity_to_server_1c1_cmaui_2:\r
+            get_attribute:\r
+            - abstract_cmaui_1c1\r
+            - cmaui_1c1_accessIPv4\r
+        port_oam_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_oam_port_replacement_policy:\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_oam_server_1c2_oam_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_external_network_1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_oam_server_1c2_0:\r
+      type: org.openecomp.resource.abstract.nodes.oam_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_oam_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_oam_server_1c2_name:\r
+        - get_input:\r
+          - oam_server_1c2_names\r
+          - 0\r
+        port_oam_port_network:\r
+        - packet_internal_network_1\r
+        vm_flavor_name:\r
+          get_input: oam_server_1c2_flavor\r
+        compute_oam_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_oam_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: oam_server_1c2_image\r
+        port_oam_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_oam_port_replacement_policy:\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_oam_server_1c2_oam_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_internal_network_1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    packet_external_network_1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_external_network_1_name\r
+  groups:\r
+    nested1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested1.yml\r
+        description: nested1\r
+      members:\r
+      - nested1_pattern_4\r
+      - packet_internal_network_1\r
+      - packet_external_network_1\r
+      - abstract_oam_server_1c2_0\r
+      - abstract_oam_server_1c2_1\r
+      - abstract_pd_server_1b\r
+      - abstract_pd_server_1b_1\r
+      - abstract_cmaui_1c1\r
+  outputs:\r
+    all_pattern_attr_1:\r
+      description: all_pattern_attr_1\r
+      value:\r
+        get_attribute:\r
+        - abstract_oam_server_1c2_1\r
+        - oam_server_1c2_accessIPv4\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+    capabilities:\r
+      memory_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - memory_server_pd\r
+      binding_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - binding_pd_server_1b_ps_server_1b_port\r
+      disk.capacity_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.capacity_pd_server_1b\r
+      disk.capacity_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.capacity_pd_server_1b\r
+      disk.read.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.requests_cmaui_1c1\r
+      disk.read.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.requests_cmaui_1c1\r
+      disk.device.read.requests.rate_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.read.requests.rate_server_pd\r
+      feature_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - feature_pd_server_1b_pd_server_1b_port\r
+      network.outgoing.packets.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.packets.rate_oam_server_1c2_oam_port\r
+      network.outgoing.packets.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.packets.rate_oam_server_1c2_oam_port\r
+      disk.device.iops_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.iops_pd_server_1b\r
+      disk.read.requests_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.read.requests_server_pd\r
+      disk.device.write.bytes_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.write.bytes_server_pd\r
+      cpu.delta_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - cpu.delta_server_pd\r
+      disk.device.iops_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.iops_pd_server_1b\r
+      scalable_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - scalable_oam_server_1c2\r
+      scalable_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - scalable_oam_server_1c2\r
+      network.outgoing.packets.rate_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.packets.rate_pd_server_1b_ps_server_1b_port\r
+      disk.device.read.requests_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.read.requests_server_pd\r
+      feature_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - feature_pd_server_port_1\r
+      network.outpoing.packets_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outpoing.packets_pd_server_port_1\r
+      disk.device.write.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests_cmaui_1c1\r
+      disk.device.write.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests_cmaui_1c1\r
+      disk.device.read.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes_cmaui_1c1\r
+      disk.device.read.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes_cmaui_1c1\r
+      disk.device.capacity_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.capacity_oam_server_1c2\r
+      disk.capacity_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.capacity_server_pd\r
+      disk.device.capacity_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.capacity_oam_server_1c2\r
+      network.outpoing.packets_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outpoing.packets_oam_server_1c2_oam_port\r
+      network.outpoing.packets_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outpoing.packets_oam_server_1c2_oam_port\r
+      binding_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1_cmaui_port\r
+      binding_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1_cmaui_port\r
+      end_point_packet_internal_network_1:\r
+      - packet_internal_network_1\r
+      - end_point\r
+      memory_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory_oam_server_1c2\r
+      memory_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory_oam_server_1c2\r
+      disk.write.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.bytes_oam_server_1c2\r
+      disk.write.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.bytes_oam_server_1c2\r
+      network.incoming.bytes.rate_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.bytes.rate_pd_server_port_2\r
+      network.incoming.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes_cmaui_1c1_cmaui_port\r
+      network.incoming.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes_cmaui_1c1_cmaui_port\r
+      network.incoming.packets_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.packets_pd_server_port_2\r
+      os_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - os_oam_server_1c2\r
+      disk.device.iops_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.iops_cmaui_1c1\r
+      disk.device.iops_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.iops_cmaui_1c1\r
+      network.outgoing.packets.rate_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.outgoing.packets.rate_pd_server_1b_pd_server_1b_port\r
+      memory.resident_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - memory.resident_pd_server_1b\r
+      disk.allocation_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.allocation_server_pd\r
+      os_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - os_oam_server_1c2\r
+      memory.resident_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - memory.resident_pd_server_1b\r
+      disk.device.write.bytes.rate_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.write.bytes.rate_server_pd\r
+      feature_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - feature_oam_server_1c2\r
+      network.incoming.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets.rate_cmaui_1c1_cmaui_port\r
+      network.incoming.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets.rate_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.bytes_oam_server_1c2_oam_port\r
+      feature_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - feature_oam_server_1c2\r
+      network.outgoing.bytes_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.bytes_oam_server_1c2_oam_port\r
+      disk.device.capacity_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.capacity_cmaui_1c1\r
+      host_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - host_server_pd\r
+      attachment_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - attachment_oam_server_1c2_oam_port\r
+      disk.capacity_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.capacity_oam_server_1c2\r
+      disk.capacity_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.capacity_oam_server_1c2\r
+      endpoint_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - endpoint_server_pd\r
+      attachment_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - attachment_oam_server_1c2_oam_port\r
+      disk.device.read.bytes.rate_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.read.bytes.rate_server_pd\r
+      disk.write.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.bytes.rate_oam_server_1c2\r
+      disk.write.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.bytes.rate_oam_server_1c2\r
+      disk.device.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.usage_cmaui_1c1\r
+      disk.device.capacity_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.capacity_cmaui_1c1\r
+      disk.device.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.usage_cmaui_1c1\r
+      disk.device.latency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.latency_oam_server_1c2\r
+      disk.device.latency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.latency_oam_server_1c2\r
+      disk.write.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests.rate_cmaui_1c1\r
+      disk.write.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests.rate_cmaui_1c1\r
+      cpu_util_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu_util_cmaui_1c1\r
+      disk.allocation_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.allocation_oam_server_1c2\r
+      disk.allocation_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.allocation_oam_server_1c2\r
+      cpu_util_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu_util_cmaui_1c1\r
+      binding_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - binding_pd_server_1b_pd_server_1b_port\r
+      disk.device.latency_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.latency_server_pd\r
+      disk.write.requests_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.write.requests_pd_server_1b\r
+      disk.read.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.bytes_oam_server_1c2\r
+      network.outpoing.packets_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outpoing.packets_pd_server_port_2\r
+      disk.read.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.bytes_oam_server_1c2\r
+      disk.write.requests_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.write.requests_pd_server_1b\r
+      binding_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - binding_oam_server_1c2_oam_port\r
+      binding_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - binding_oam_server_1c2_oam_port\r
+      disk.read.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes.rate_cmaui_1c1\r
+      disk.read.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes.rate_cmaui_1c1\r
+      host_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - host_cmaui_1c1\r
+      host_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - host_cmaui_1c1\r
+      vcpus_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - vcpus_pd_server_1b\r
+      vcpus_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - vcpus_pd_server_1b\r
+      disk.latency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.latency_oam_server_1c2\r
+      network.incoming.bytes.rate_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.bytes.rate_pd_server_port_1\r
+      disk.latency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.latency_oam_server_1c2\r
+      disk.device.usage_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.usage_server_pd\r
+      disk.root.size_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.root.size_oam_server_1c2\r
+      disk.root.size_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.root.size_oam_server_1c2\r
+      disk.device.write.requests_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.write.requests_pd_server_1b\r
+      cpu_util_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - cpu_util_server_pd\r
+      disk.device.write.requests_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.requests_pd_server_1b\r
+      network.incoming.bytes.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.bytes.rate_oam_server_1c2_oam_port\r
+      network.outgoing.bytes.rate_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outgoing.bytes.rate_pd_server_port_1\r
+      network.incoming.bytes.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.bytes.rate_oam_server_1c2_oam_port\r
+      memory.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory.usage_cmaui_1c1\r
+      memory.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory.usage_cmaui_1c1\r
+      end_point_packet_external_network_1:\r
+      - packet_external_network_1\r
+      - end_point\r
+      binding_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1\r
+      binding_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1\r
+      disk.device.iops_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.iops_oam_server_1c2\r
+      disk.device.iops_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.iops_oam_server_1c2\r
+      network.incoming.bytes_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.bytes_pd_server_port_2\r
+      forwarder_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - forwarder_oam_server_1c2_oam_port\r
+      forwarder_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - forwarder_oam_server_1c2_oam_port\r
+      binding_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - binding_oam_server_1c2\r
+      binding_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - binding_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.bytes.rate_pd_server_1b\r
+      disk.write.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.requests_oam_server_1c2\r
+      disk.write.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.requests_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.read.bytes.rate_pd_server_1b\r
+      network.incoming.bytes_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.bytes_pd_server_1b_ps_server_1b_port\r
+      network.outgoing.packets.rate_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outgoing.packets.rate_pd_server_port_2\r
+      disk.usage_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.usage_pd_server_1b\r
+      disk.write.bytes.rate_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.write.bytes.rate_pd_server_1b\r
+      disk.write.bytes.rate_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.write.bytes.rate_pd_server_1b\r
+      disk.usage_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.usage_pd_server_1b\r
+      network.incoming.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets_cmaui_1c1_cmaui_port\r
+      disk.device.write.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.requests_oam_server_1c2\r
+      disk.allocation_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.allocation_cmaui_1c1\r
+      disk.device.write.bytes.rate_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.bytes.rate_pd_server_1b\r
+      disk.device.write.bytes.rate_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.write.bytes.rate_pd_server_1b\r
+      network.incoming.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets_cmaui_1c1_cmaui_port\r
+      feature_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - feature_pd_server_1b\r
+      disk.device.write.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests.rate_cmaui_1c1\r
+      disk.device.write.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests.rate_cmaui_1c1\r
+      feature_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - feature_pd_server_1b\r
+      disk.device.write.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.requests_oam_server_1c2\r
+      disk.device.read.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.requests_oam_server_1c2\r
+      disk.device.write.bytes_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.bytes_pd_server_1b\r
+      disk.device.read.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.requests_oam_server_1c2\r
+      disk.device.write.bytes_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.write.bytes_pd_server_1b\r
+      disk.device.read.bytes_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.read.bytes_server_pd\r
+      network.incoming.packets.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.packets.rate_oam_server_1c2_oam_port\r
+      network.incoming.packets.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.packets.rate_oam_server_1c2_oam_port\r
+      disk.iops_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.iops_pd_server_1b\r
+      disk.iops_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.iops_pd_server_1b\r
+      disk.allocation_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.allocation_cmaui_1c1\r
+      disk.device.allocation_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.allocation_oam_server_1c2\r
+      disk.device.allocation_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.allocation_oam_server_1c2\r
+      disk.write.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests_cmaui_1c1\r
+      disk.write.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests_cmaui_1c1\r
+      link_packet_external_network_1:\r
+      - packet_external_network_1\r
+      - link\r
+      network.outgoing.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port\r
+      network.incoming.bytes_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.bytes_pd_server_port_1\r
+      cpu_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu_cmaui_1c1\r
+      network.outgoing.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port\r
+      cpu_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu_cmaui_1c1\r
+      network.outpoing.packets_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.outpoing.packets_pd_server_1b_ps_server_1b_port\r
+      cpu_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu_oam_server_1c2\r
+      cpu_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu_oam_server_1c2\r
+      disk.write.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.requests.rate_oam_server_1c2\r
+      disk.device.read.bytes_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.read.bytes_pd_server_1b\r
+      attachment_packet_external_network_1:\r
+      - packet_external_network_1\r
+      - attachment\r
+      disk.device.read.bytes_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.bytes_pd_server_1b\r
+      feature_packet_internal_network_1:\r
+      - packet_internal_network_1\r
+      - feature\r
+      disk.iops_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.iops_server_pd\r
+      disk.write.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.requests.rate_oam_server_1c2\r
+      disk.read.bytes_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.read.bytes_pd_server_1b\r
+      disk.device.write.requests_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.write.requests_server_pd\r
+      disk.read.bytes_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.read.bytes_pd_server_1b\r
+      endpoint_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - endpoint_pd_server_1b\r
+      endpoint_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - endpoint_pd_server_1b\r
+      network.incoming.bytes_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.incoming.bytes_pd_server_1b_pd_server_1b_port\r
+      instance_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - instance_server_pd\r
+      disk.latency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.latency_cmaui_1c1\r
+      memory_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - memory_pd_server_1b\r
+      disk.latency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.latency_cmaui_1c1\r
+      memory_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - memory_pd_server_1b\r
+      network.outgoing.packets.rate_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outgoing.packets.rate_pd_server_port_1\r
+      feature_packet_external_network_1:\r
+      - packet_external_network_1\r
+      - feature\r
+      disk.device.latency_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.latency_pd_server_1b\r
+      disk.device.latency_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.latency_pd_server_1b\r
+      disk.read.bytes_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.read.bytes_server_pd\r
+      disk.device.iops_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.iops_server_pd\r
+      network.incoming.packets_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.packets_oam_server_1c2_oam_port\r
+      network.incoming.packets_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.packets_oam_server_1c2_oam_port\r
+      network.incoming.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port\r
+      network.incoming.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port\r
+      disk.iops_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.iops_cmaui_1c1\r
+      disk.iops_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.iops_cmaui_1c1\r
+      disk.device.read.requests_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.requests_pd_server_1b\r
+      disk.device.read.requests_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.read.requests_pd_server_1b\r
+      forwarder_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - forwarder_pd_server_port_2\r
+      disk.device.write.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.bytes_oam_server_1c2\r
+      disk.device.write.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.bytes_oam_server_1c2\r
+      disk.write.bytes_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.write.bytes_server_pd\r
+      feature_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - feature_pd_server_port_2\r
+      disk.device.write.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.bytes.rate_oam_server_1c2\r
+      disk.read.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes_cmaui_1c1\r
+      disk.device.write.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.bytes.rate_oam_server_1c2\r
+      disk.read.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes_cmaui_1c1\r
+      disk.iops_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.iops_oam_server_1c2\r
+      forwarder_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - forwarder_pd_server_1b_pd_server_1b_port\r
+      disk.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.usage_oam_server_1c2\r
+      feature_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1\r
+      disk.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.usage_oam_server_1c2\r
+      feature_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1\r
+      network.outpoing.packets_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.outpoing.packets_pd_server_1b_pd_server_1b_port\r
+      network.outgoing.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes_cmaui_1c1_cmaui_port\r
+      disk.device.capacity_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.capacity_server_pd\r
+      disk.iops_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.iops_oam_server_1c2\r
+      network.outgoing.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outgoing.bytes_pd_server_port_1\r
+      binding_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - binding_server_pd\r
+      cpu_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - cpu_pd_server_1b\r
+      feature_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - feature_server_pd\r
+      disk.device.write.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.requests.rate_oam_server_1c2\r
+      disk.device.write.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.requests.rate_oam_server_1c2\r
+      disk.read.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.bytes.rate_oam_server_1c2\r
+      memory.usage_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - memory.usage_server_pd\r
+      scalable_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - scalable_server_pd\r
+      disk.read.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.bytes.rate_oam_server_1c2\r
+      cpu_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - cpu_pd_server_1b\r
+      disk.usage_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.usage_server_pd\r
+      network.outgoing.bytes_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outgoing.bytes_pd_server_port_2\r
+      vcpus_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - vcpus_server_pd\r
+      link_packet_internal_network_1:\r
+      - packet_internal_network_1\r
+      - link\r
+      disk.write.bytes_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.write.bytes_pd_server_1b\r
+      disk.write.bytes_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.write.bytes_pd_server_1b\r
+      disk.device.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.usage_oam_server_1c2\r
+      network.incoming.packets.rate_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.packets.rate_pd_server_port_2\r
+      disk.device.write.requests.rate_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.requests.rate_pd_server_1b\r
+      disk.device.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.usage_oam_server_1c2\r
+      forwarder_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - forwarder_pd_server_port_1\r
+      disk.latency_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.latency_server_pd\r
+      disk.device.write.requests.rate_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.write.requests.rate_pd_server_1b\r
+      attachment_packet_internal_network_1:\r
+      - packet_internal_network_1\r
+      - attachment\r
+      disk.write.requests.rate_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.write.requests.rate_server_pd\r
+      os_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - os_server_pd\r
+      cpu_util_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu_util_oam_server_1c2\r
+      cpu_util_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu_util_oam_server_1c2\r
+      network.incoming.packets_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.packets_pd_server_1b_ps_server_1b_port\r
+      network.outgoing.bytes.rate_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.bytes.rate_pd_server_1b_ps_server_1b_port\r
+      network.outgoing.bytes_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.outgoing.bytes_pd_server_1b_pd_server_1b_port\r
+      attachment_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - attachment_pd_server_port_1\r
+      memory.resident_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory.resident_oam_server_1c2\r
+      memory.resident_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory.resident_oam_server_1c2\r
+      disk.device.allocation_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.allocation_cmaui_1c1\r
+      disk.device.allocation_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.allocation_cmaui_1c1\r
+      disk.root.size_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.root.size_server_pd\r
+      vcpus_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - vcpus_cmaui_1c1\r
+      feature_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1_cmaui_port\r
+      feature_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1_cmaui_port\r
+      instance_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - instance_cmaui_1c1\r
+      instance_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - instance_cmaui_1c1\r
+      network.outgoing.bytes.rate_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.outgoing.bytes.rate_pd_server_1b_pd_server_1b_port\r
+      attachment_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - attachment_pd_server_port_2\r
+      disk.device.read.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.requests.rate_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.requests.rate_oam_server_1c2\r
+      os_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - os_pd_server_1b\r
+      os_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - os_pd_server_1b\r
+      disk.root.size_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.root.size_pd_server_1b\r
+      endpoint_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - endpoint_cmaui_1c1\r
+      network.incoming.packets.rate_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.packets.rate_pd_server_1b_ps_server_1b_port\r
+      host_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - host_pd_server_1b\r
+      disk.root.size_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.root.size_pd_server_1b\r
+      endpoint_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - endpoint_cmaui_1c1\r
+      host_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - host_pd_server_1b\r
+      vcpus_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - vcpus_cmaui_1c1\r
+      forwarder_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - forwarder_cmaui_1c1_cmaui_port\r
+      forwarder_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - forwarder_cmaui_1c1_cmaui_port\r
+      disk.allocation_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.allocation_pd_server_1b\r
+      disk.allocation_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.allocation_pd_server_1b\r
+      attachment_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - attachment_pd_server_1b_ps_server_1b_port\r
+      disk.device.read.requests.rate_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.read.requests.rate_pd_server_1b\r
+      disk.device.read.requests.rate_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.requests.rate_pd_server_1b\r
+      disk.write.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes.rate_cmaui_1c1\r
+      disk.write.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes.rate_cmaui_1c1\r
+      memory.resident_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - memory.resident_server_pd\r
+      network.outgoing.bytes.rate_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.outgoing.bytes.rate_pd_server_port_2\r
+      network.outgoing.bytes_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.bytes_pd_server_1b_ps_server_1b_port\r
+      disk.device.allocation_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.allocation_server_pd\r
+      network.outpoing.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outpoing.packets_cmaui_1c1_cmaui_port\r
+      network.outpoing.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outpoing.packets_cmaui_1c1_cmaui_port\r
+      disk.read.bytes.rate_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.read.bytes.rate_pd_server_1b\r
+      disk.read.bytes.rate_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.read.bytes.rate_pd_server_1b\r
+      memory.usage_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - memory.usage_pd_server_1b\r
+      memory.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory.usage_oam_server_1c2\r
+      memory.usage_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - memory.usage_pd_server_1b\r
+      memory.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory.usage_oam_server_1c2\r
+      disk.read.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.requests_oam_server_1c2\r
+      disk.latency_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.latency_pd_server_1b\r
+      disk.read.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.requests_oam_server_1c2\r
+      disk.latency_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.latency_pd_server_1b\r
+      memory.resident_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory.resident_cmaui_1c1\r
+      memory.resident_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory.resident_cmaui_1c1\r
+      os_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - os_cmaui_1c1\r
+      os_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - os_cmaui_1c1\r
+      disk.ephemeral.size_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.ephemeral.size_server_pd\r
+      instance_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - instance_oam_server_1c2\r
+      instance_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - instance_oam_server_1c2\r
+      memory_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory_cmaui_1c1\r
+      network.incoming.bytes.rate_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.bytes.rate_pd_server_1b_ps_server_1b_port\r
+      disk.device.write.requests.rate_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.device.write.requests.rate_server_pd\r
+      disk.write.requests.rate_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.write.requests.rate_pd_server_1b\r
+      disk.write.requests.rate_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.write.requests.rate_pd_server_1b\r
+      memory_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory_cmaui_1c1\r
+      disk.read.bytes.rate_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.read.bytes.rate_server_pd\r
+      vcpus_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - vcpus_oam_server_1c2\r
+      vcpus_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - vcpus_oam_server_1c2\r
+      disk.device.allocation_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.allocation_pd_server_1b\r
+      disk.device.allocation_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.allocation_pd_server_1b\r
+      disk.ephemeral.size_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.ephemeral.size_cmaui_1c1\r
+      disk.ephemeral.size_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.ephemeral.size_cmaui_1c1\r
+      disk.root.size_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.root.size_cmaui_1c1\r
+      disk.root.size_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.root.size_cmaui_1c1\r
+      disk.read.requests_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.read.requests_pd_server_1b\r
+      disk.device.write.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes.rate_cmaui_1c1\r
+      disk.read.requests_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.read.requests_pd_server_1b\r
+      cpu_util_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - cpu_util_pd_server_1b\r
+      cpu_util_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - cpu_util_pd_server_1b\r
+      disk.write.requests_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.write.requests_server_pd\r
+      forwarder_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - forwarder_pd_server_1b_ps_server_1b_port\r
+      disk.device.write.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes_cmaui_1c1\r
+      disk.device.write.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes.rate_cmaui_1c1\r
+      disk.device.write.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes_cmaui_1c1\r
+      host_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - host_oam_server_1c2\r
+      host_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - host_oam_server_1c2\r
+      cpu_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - cpu_server_pd\r
+      disk.device.read.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests_cmaui_1c1\r
+      disk.device.read.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests_cmaui_1c1\r
+      binding_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - binding_pd_server_1b\r
+      binding_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - binding_pd_server_1b\r
+      binding_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - binding_pd_server_port_2\r
+      disk.device.read.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes.rate_cmaui_1c1\r
+      disk.device.read.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes.rate_cmaui_1c1\r
+      attachment_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - attachment_pd_server_1b_pd_server_1b_port\r
+      cpu.delta_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu.delta_oam_server_1c2\r
+      disk.ephemeral.size_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.ephemeral.size_pd_server_1b\r
+      disk.ephemeral.size_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.ephemeral.size_pd_server_1b\r
+      disk.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.usage_cmaui_1c1\r
+      disk.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.usage_cmaui_1c1\r
+      network.incoming.bytes_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.bytes_oam_server_1c2_oam_port\r
+      network.incoming.bytes_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.bytes_oam_server_1c2_oam_port\r
+      disk.write.bytes.rate_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - disk.write.bytes.rate_server_pd\r
+      attachment_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - attachment_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.bytes.rate_oam_server_1c2_oam_port\r
+      instance_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - instance_pd_server_1b\r
+      disk.device.capacity_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.capacity_pd_server_1b\r
+      network.outgoing.bytes.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.bytes.rate_oam_server_1c2_oam_port\r
+      instance_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - instance_pd_server_1b\r
+      disk.device.capacity_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.capacity_pd_server_1b\r
+      disk.capacity_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.capacity_cmaui_1c1\r
+      network.outgoing.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port\r
+      network.outgoing.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port\r
+      attachment_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - attachment_cmaui_1c1_cmaui_port\r
+      disk.capacity_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.capacity_cmaui_1c1\r
+      disk.ephemeral.size_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.ephemeral.size_oam_server_1c2\r
+      disk.ephemeral.size_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.ephemeral.size_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests.rate_cmaui_1c1\r
+      network.incoming.packets.rate_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.incoming.packets.rate_pd_server_1b_pd_server_1b_port\r
+      disk.device.read.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.bytes_oam_server_1c2\r
+      disk.device.read.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.bytes_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests.rate_cmaui_1c1\r
+      cpu.delta_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu.delta_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.bytes.rate_oam_server_1c2\r
+      disk.device.usage_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - disk.device.usage_pd_server_1b\r
+      disk.device.usage_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - disk.device.usage_pd_server_1b\r
+      network.incoming.packets.rate_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.packets.rate_pd_server_port_1\r
+      disk.device.read.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.bytes.rate_oam_server_1c2\r
+      disk.write.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes_cmaui_1c1\r
+      disk.write.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes_cmaui_1c1\r
+      feature_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - feature_oam_server_1c2_oam_port\r
+      feature_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - feature_oam_server_1c2_oam_port\r
+      feature_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - feature\r
+      network.incoming.packets_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - network.incoming.packets_pd_server_port_1\r
+      disk.device.latency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.latency_cmaui_1c1\r
+      scalable_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - scalable_cmaui_1c1\r
+      disk.device.latency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.latency_cmaui_1c1\r
+      scalable_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - scalable_cmaui_1c1\r
+      cpu.delta_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu.delta_cmaui_1c1\r
+      cpu.delta_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu.delta_cmaui_1c1\r
+      scalable_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - scalable_pd_server_1b\r
+      scalable_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - scalable_pd_server_1b\r
+      cpu.delta_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - cpu.delta_pd_server_1b\r
+      cpu.delta_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - cpu.delta_pd_server_1b\r
+      network.incoming.packets_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.incoming.packets_pd_server_1b_pd_server_1b_port\r
+      binding_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - binding_pd_server_port_1\r
+      network.incoming.bytes.rate_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - network.incoming.bytes.rate_pd_server_1b_pd_server_1b_port\r
+      feature_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - feature_pd_server_1b_ps_server_1b_port\r
+      endpoint_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - endpoint_oam_server_1c2\r
+      endpoint_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - endpoint_oam_server_1c2\r
+    requirements:\r
+      dependency_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - dependency_oam_server_1c2_oam_port\r
+      dependency_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - dependency_oam_server_1c2_oam_port\r
+      dependency_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - dependency_pd_server_port_1\r
+      link_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - link_pd_server_port_2\r
+      dependency_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - dependency_pd_server_1b_pd_server_1b_port\r
+      dependency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - dependency_oam_server_1c2\r
+      dependency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - dependency_oam_server_1c2\r
+      local_storage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - local_storage_oam_server_1c2\r
+      local_storage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - local_storage_oam_server_1c2\r
+      dependency_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1_cmaui_port\r
+      dependency_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - dependency_server_pd\r
+      dependency_pd_server_port_2_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - dependency_pd_server_port_2\r
+      dependency_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1_cmaui_port\r
+      dependency_packet_internal_network_1:\r
+      - packet_internal_network_1\r
+      - dependency\r
+      link_pd_server_port_1_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - link_pd_server_port_1\r
+      dependency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1\r
+      local_storage_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - local_storage_pd_server_1b\r
+      local_storage_server_pd_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - local_storage_server_pd\r
+      local_storage_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - local_storage_pd_server_1b\r
+      dependency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1\r
+      link_pd_server_1b_port_1:\r
+      - abstract_pd_server_1b_1\r
+      - link_pd_server_1b_pd_server_1b_port\r
+      link_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - link_pd_server_1b_ps_server_1b_port\r
+      dependency_packet_external_network_1:\r
+      - packet_external_network_1\r
+      - dependency\r
+      dependency_ps_server_1b_port_1:\r
+      - abstract_pd_server_1b\r
+      - dependency_pd_server_1b_ps_server_1b_port\r
+      local_storage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - local_storage_cmaui_1c1\r
+      local_storage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - local_storage_cmaui_1c1\r
+      dependency_server_1b_pd_1:\r
+      - abstract_pd_server_1b_1\r
+      - dependency_pd_server_1b\r
+      dependency_nested1_pattern_4:\r
+      - nested1_pattern_4\r
+      - dependency\r
+      dependency_server_1b_pd_2:\r
+      - abstract_pd_server_1b\r
+      - dependency_pd_server_1b\r
\ No newline at end of file
index dfff65e..419801e 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: nested1
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    p1:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    p2:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    cmaui_1c1_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    ps_server_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    packet_internal_network_name:
-      hidden: false
-      immutable: false
-      type: string
-    pd_server_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: PD server names
-      entry_schema:
-        type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    oam_server_1c2_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    cmaui_1c1_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    ps_server_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: Ps server names
-      entry_schema:
-        type: string
-    cmaui_1c1_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    pd_server_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PD server
-    pd_server_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    packet_external_network_name:
-      hidden: false
-      immutable: false
-      type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      type: string
-      description: availabilityzone name
-    ps_server_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PS server
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      type: string
-    ps_server_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Ps Image server
-    net:
-      hidden: false
-      immutable: false
-      type: string
-    pd_server_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: PD Image server
-    oam_server_1c2_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    oam_server_1c2_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_cmaui_1c1:
-      type: org.openecomp.resource.abstract.nodes.cmaui_1c1
-      directives:
-      - substitutable
-      properties:
-        port_cmaui_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        port_cmaui_port_network:
-        - packet_internal_network
-        compute_cmaui_1c1_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        vm_flavor_name:
-          get_input: cmaui_1c1_flavor
-        port_cmaui_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_cmaui_port_replacement_policy:
-        - AUTO
-        vm_image_name:
-          get_input: cmaui_1c1_image
-        port_cmaui_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_cmaui_1c1_name:
-        - get_input:
-          - cmaui_1c1_names
-          - 1
-        - get_input:
-          - cmaui_1c1_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_cmaui_1c1_cmaui_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_internal_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_pd_server_1b:
-      type: org.openecomp.resource.abstract.nodes.pd_server_1b
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_1b_name:
-        - get_input:
-          - pd_server_1b_names
-          - 0
-        vm_flavor_name:
-          get_input: pd_server_1b_flavor
-        vm_image_name:
-          get_input: pd_server_1b_image
-        port_pd_server_1b_port_replacement_policy:
-        - AUTO
-        port_pd_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - pd_server_1b_ips
-            - 0
-        port_pd_server_1b_port_network:
-        - get_input: net
-        compute_pd_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        port_pd_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_ps_server_1b:
-      type: org.openecomp.resource.abstract.nodes.ps_server_1b
-      directives:
-      - substitutable
-      properties:
-        port_ps_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - ps_server_1b_ips
-            - 0
-        vm_flavor_name:
-          get_input: ps_server_1b_flavor
-        port_ps_server_1b_port_network:
-        - get_input: net
-        port_ps_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: ps_server_1b_image
-        port_ps_server_1b_port_replacement_policy:
-        - AUTO
-        compute_ps_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        compute_ps_server_1b_name:
-        - get_input:
-          - ps_server_1b_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_ps_server_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    packet_external_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_external_network_name
-    packet_internal_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_internal_network_name
-    abstract_oam_server_1c2_1:
-      type: org.openecomp.resource.abstract.nodes.oam_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_oam_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_oam_server_1c2_name:
-        - get_input:
-          - oam_server_1c2_names
-          - 1
-        port_oam_port_network:
-        - packet_external_network
-        vm_flavor_name:
-          get_input: oam_server_1c2_flavor
-        compute_oam_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        port_oam_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 1
-        vm_image_name:
-          get_input: oam_server_1c2_image
-        port_oam_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_oam_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_oam_server_1c2_oam_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_external_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_oam_server_1c2_0:
-      type: org.openecomp.resource.abstract.nodes.oam_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_oam_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_oam_server_1c2_name:
-        - get_input:
-          - oam_server_1c2_names
-          - 0
-        port_oam_port_network:
-        - packet_internal_network
-        vm_flavor_name:
-          get_input: oam_server_1c2_flavor
-        compute_oam_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        port_oam_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 1
-        vm_image_name:
-          get_input: oam_server_1c2_image
-        port_oam_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_oam_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_oam_server_1c2_oam_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_internal_network
-          relationship: tosca.relationships.network.LinksTo
-  groups:
-    nested1_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/nested1.yml
-        description: nested1
-      members:
-      - packet_external_network
-      - packet_internal_network
-      - abstract_ps_server_1b
-      - abstract_oam_server_1c2_0
-      - abstract_oam_server_1c2_1
-      - abstract_pd_server_1b
-      - abstract_cmaui_1c1
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.nested1
-    capabilities:
-      disk.capacity_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.capacity_pd_server_1b
-      disk.device.write.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.bytes.rate_oam_server_1c2
-      disk.read.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.bytes_cmaui_1c1
-      disk.device.write.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.bytes.rate_oam_server_1c2
-      disk.device.read.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.bytes.rate_ps_server_1b
-      disk.read.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.bytes_cmaui_1c1
-      disk.usage_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.usage_pd_server_1b
-      disk.iops_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.iops_oam_server_1c2
-      disk.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.usage_oam_server_1c2
-      disk.read.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.requests_cmaui_1c1
-      feature_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1
-      disk.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.usage_oam_server_1c2
-      network.incoming.bytes_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.bytes_pd_server_1b_pd_server_1b_port
-      feature_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1
-      disk.read.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.requests_cmaui_1c1
-      disk.device.iops_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.iops_ps_server_1b
-      network.outgoing.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes_cmaui_1c1_cmaui_port
-      disk.iops_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.iops_oam_server_1c2
-      network.outgoing.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes_cmaui_1c1_cmaui_port
-      network.outgoing.packets.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.packets.rate_oam_server_1c2_oam_port
-      network.outgoing.packets.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.packets.rate_oam_server_1c2_oam_port
-      disk.device.iops_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.iops_pd_server_1b
-      network.incoming.packets_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.packets_pd_server_1b_pd_server_1b_port
-      attachment_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - attachment_ps_server_1b_ps_server_1b_port
-      disk.device.write.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.requests.rate_oam_server_1c2
-      forwarder_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - forwarder_ps_server_1b_ps_server_1b_port
-      disk.device.write.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.requests.rate_oam_server_1c2
-      disk.device.read.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.bytes.rate_pd_server_1b
-      disk.read.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.bytes.rate_oam_server_1c2
-      disk.read.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.bytes.rate_oam_server_1c2
-      scalable_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - scalable_oam_server_1c2
-      disk.latency_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.latency_pd_server_1b
-      scalable_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - scalable_oam_server_1c2
-      disk.device.read.requests.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.requests.rate_pd_server_1b
-      disk.device.write.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests_cmaui_1c1
-      disk.device.write.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests_cmaui_1c1
-      disk.device.read.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes_cmaui_1c1
-      disk.device.read.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes_cmaui_1c1
-      disk.device.read.requests.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.requests.rate_ps_server_1b
-      disk.device.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.usage_oam_server_1c2
-      disk.device.capacity_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.capacity_oam_server_1c2
-      disk.device.capacity_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.capacity_oam_server_1c2
-      binding_server_1b_ps:
-      - abstract_ps_server_1b
-      - binding_ps_server_1b
-      binding_server_1b_pd:
-      - abstract_pd_server_1b
-      - binding_pd_server_1b
-      disk.device.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.usage_oam_server_1c2
-      memory.usage_server_1b_pd:
-      - abstract_pd_server_1b
-      - memory.usage_pd_server_1b
-      network.outpoing.packets_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outpoing.packets_oam_server_1c2_oam_port
-      network.outpoing.packets_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outpoing.packets_oam_server_1c2_oam_port
-      binding_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1_cmaui_port
-      binding_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1_cmaui_port
-      memory.usage_server_1b_ps:
-      - abstract_ps_server_1b
-      - memory.usage_ps_server_1b
-      cpu_util_server_1b_pd:
-      - abstract_pd_server_1b
-      - cpu_util_pd_server_1b
-      cpu_util_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu_util_oam_server_1c2
-      cpu_util_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu_util_oam_server_1c2
-      memory_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory_oam_server_1c2
-      memory_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory_oam_server_1c2
-      disk.write.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.bytes_oam_server_1c2
-      disk.write.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.bytes_oam_server_1c2
-      memory.resident_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory.resident_oam_server_1c2
-      memory.resident_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory.resident_oam_server_1c2
-      cpu_util_server_1b_ps:
-      - abstract_ps_server_1b
-      - cpu_util_ps_server_1b
-      network.incoming.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes_cmaui_1c1_cmaui_port
-      network.incoming.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes_cmaui_1c1_cmaui_port
-      os_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - os_oam_server_1c2
-      disk.device.iops_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.iops_cmaui_1c1
-      instance_server_1b_pd:
-      - abstract_pd_server_1b
-      - instance_pd_server_1b
-      disk.device.iops_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.iops_cmaui_1c1
-      os_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - os_oam_server_1c2
-      disk.device.write.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.bytes_pd_server_1b
-      disk.device.allocation_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.allocation_cmaui_1c1
-      disk.device.allocation_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.allocation_cmaui_1c1
-      feature_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - feature_oam_server_1c2
-      disk.device.write.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.bytes_ps_server_1b
-      network.incoming.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.packets.rate_cmaui_1c1_cmaui_port
-      vcpus_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - vcpus_cmaui_1c1
-      network.incoming.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.packets.rate_cmaui_1c1_cmaui_port
-      feature_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1_cmaui_port
-      network.incoming.bytes.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.bytes.rate_pd_server_1b_pd_server_1b_port
-      network.outgoing.bytes_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.bytes_oam_server_1c2_oam_port
-      feature_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1_cmaui_port
-      instance_server_1b_ps:
-      - abstract_ps_server_1b
-      - instance_ps_server_1b
-      feature_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - feature_oam_server_1c2
-      network.outgoing.bytes_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.bytes_oam_server_1c2_oam_port
-      disk.device.capacity_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.capacity_cmaui_1c1
-      instance_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - instance_cmaui_1c1
-      cpu.delta_server_1b_ps:
-      - abstract_ps_server_1b
-      - cpu.delta_ps_server_1b
-      instance_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - instance_cmaui_1c1
-      disk.device.read.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.requests.rate_oam_server_1c2
-      disk.device.read.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.requests.rate_oam_server_1c2
-      attachment_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - attachment_oam_server_1c2_oam_port
-      disk.device.write.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.bytes.rate_pd_server_1b
-      disk.capacity_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.capacity_oam_server_1c2
-      disk.capacity_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.capacity_oam_server_1c2
-      cpu.delta_server_1b_pd:
-      - abstract_pd_server_1b
-      - cpu.delta_pd_server_1b
-      attachment_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - attachment_oam_server_1c2_oam_port
-      disk.device.write.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.requests_pd_server_1b
-      disk.write.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.bytes.rate_oam_server_1c2
-      disk.write.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.bytes.rate_oam_server_1c2
-      endpoint_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - endpoint_cmaui_1c1
-      network.outgoing.packets.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outgoing.packets.rate_ps_server_1b_ps_server_1b_port
-      endpoint_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - endpoint_cmaui_1c1
-      disk.device.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.usage_cmaui_1c1
-      disk.device.capacity_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.capacity_cmaui_1c1
-      disk.device.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.usage_cmaui_1c1
-      network.incoming.bytes_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.bytes_ps_server_1b_ps_server_1b_port
-      attachment_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - attachment_pd_server_1b_pd_server_1b_port
-      vcpus_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - vcpus_cmaui_1c1
-      binding_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - binding_ps_server_1b_ps_server_1b_port
-      disk.device.write.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.bytes.rate_ps_server_1b
-      forwarder_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - forwarder_cmaui_1c1_cmaui_port
-      forwarder_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - forwarder_cmaui_1c1_cmaui_port
-      disk.device.write.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.requests_ps_server_1b
-      disk.device.latency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.latency_oam_server_1c2
-      disk.device.latency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.latency_oam_server_1c2
-      feature_packet_external_network:
-      - packet_external_network
-      - feature
-      disk.write.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.requests.rate_cmaui_1c1
-      disk.write.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.requests.rate_cmaui_1c1
-      disk.device.read.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.requests_pd_server_1b
-      disk.read.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.read.requests_pd_server_1b
-      cpu_util_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu_util_cmaui_1c1
-      disk.allocation_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.allocation_oam_server_1c2
-      disk.allocation_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.allocation_oam_server_1c2
-      cpu_util_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu_util_cmaui_1c1
-      disk.device.read.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.requests_ps_server_1b
-      binding_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - binding_pd_server_1b_pd_server_1b_port
-      disk.read.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.bytes_oam_server_1c2
-      disk.read.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.bytes_oam_server_1c2
-      cpu_server_1b_pd:
-      - abstract_pd_server_1b
-      - cpu_pd_server_1b
-      binding_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - binding_oam_server_1c2_oam_port
-      disk.write.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.bytes.rate_cmaui_1c1
-      disk.write.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.bytes.rate_cmaui_1c1
-      disk.allocation_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.allocation_pd_server_1b
-      binding_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - binding_oam_server_1c2_oam_port
-      disk.read.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.bytes.rate_cmaui_1c1
-      disk.read.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.bytes.rate_cmaui_1c1
-      host_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - host_cmaui_1c1
-      host_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - host_cmaui_1c1
-      cpu_server_1b_ps:
-      - abstract_ps_server_1b
-      - cpu_ps_server_1b
-      network.outpoing.packets_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outpoing.packets_cmaui_1c1_cmaui_port
-      disk.allocation_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.allocation_ps_server_1b
-      network.outpoing.packets_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outpoing.packets_cmaui_1c1_cmaui_port
-      disk.latency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.latency_oam_server_1c2
-      disk.latency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.latency_oam_server_1c2
-      disk.read.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.read.requests_ps_server_1b
-      disk.capacity_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.capacity_ps_server_1b
-      memory.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory.usage_oam_server_1c2
-      network.outpoing.packets_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outpoing.packets_ps_server_1b_ps_server_1b_port
-      memory.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory.usage_oam_server_1c2
-      disk.read.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.requests_oam_server_1c2
-      attachment_packet_external_network:
-      - packet_external_network
-      - attachment
-      disk.read.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.requests_oam_server_1c2
-      disk.usage_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.usage_ps_server_1b
-      disk.root.size_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.root.size_oam_server_1c2
-      memory.resident_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory.resident_cmaui_1c1
-      disk.root.size_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.root.size_oam_server_1c2
-      memory.resident_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory.resident_cmaui_1c1
-      network.incoming.bytes.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.bytes.rate_ps_server_1b_ps_server_1b_port
-      network.incoming.bytes.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.bytes.rate_oam_server_1c2_oam_port
-      os_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - os_cmaui_1c1
-      os_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - os_cmaui_1c1
-      instance_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - instance_oam_server_1c2
-      instance_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - instance_oam_server_1c2
-      network.incoming.bytes.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.bytes.rate_oam_server_1c2_oam_port
-      vcpus_server_1b_pd:
-      - abstract_pd_server_1b
-      - vcpus_pd_server_1b
-      memory.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory.usage_cmaui_1c1
-      disk.write.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.bytes.rate_ps_server_1b
-      memory.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory.usage_cmaui_1c1
-      binding_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1
-      memory_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory_cmaui_1c1
-      binding_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1
-      feature_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - feature_ps_server_1b_ps_server_1b_port
-      disk.device.iops_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.iops_oam_server_1c2
-      vcpus_server_1b_ps:
-      - abstract_ps_server_1b
-      - vcpus_ps_server_1b
-      disk.device.iops_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.iops_oam_server_1c2
-      disk.write.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.bytes.rate_pd_server_1b
-      forwarder_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - forwarder_oam_server_1c2_oam_port
-      forwarder_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - forwarder_oam_server_1c2_oam_port
-      binding_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - binding_oam_server_1c2
-      binding_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - binding_oam_server_1c2
-      os_server_1b_pd:
-      - abstract_pd_server_1b
-      - os_pd_server_1b
-      attachment_packet_internal_network:
-      - packet_internal_network
-      - attachment
-      network.outgoing.packets.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outgoing.packets.rate_pd_server_1b_pd_server_1b_port
-      memory_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory_cmaui_1c1
-      disk.device.latency_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.latency_pd_server_1b
-      disk.write.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.requests_oam_server_1c2
-      disk.device.usage_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.usage_pd_server_1b
-      disk.write.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.requests_oam_server_1c2
-      vcpus_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - vcpus_oam_server_1c2
-      vcpus_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - vcpus_oam_server_1c2
-      os_server_1b_ps:
-      - abstract_ps_server_1b
-      - os_ps_server_1b
-      disk.device.latency_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.latency_ps_server_1b
-      disk.ephemeral.size_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.ephemeral.size_cmaui_1c1
-      disk.ephemeral.size_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.ephemeral.size_cmaui_1c1
-      disk.root.size_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.root.size_cmaui_1c1
-      disk.device.usage_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.usage_ps_server_1b
-      disk.root.size_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.root.size_cmaui_1c1
-      disk.read.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.read.bytes_ps_server_1b
-      network.incoming.packets_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.packets_cmaui_1c1_cmaui_port
-      disk.device.write.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes.rate_cmaui_1c1
-      disk.ephemeral.size_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.ephemeral.size_pd_server_1b
-      disk.device.write.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.requests_oam_server_1c2
-      disk.allocation_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.allocation_cmaui_1c1
-      memory_server_1b_ps:
-      - abstract_ps_server_1b
-      - memory_ps_server_1b
-      network.incoming.packets_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.packets_cmaui_1c1_cmaui_port
-      network.outgoing.bytes.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outgoing.bytes.rate_ps_server_1b_ps_server_1b_port
-      network.incoming.packets.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.packets.rate_ps_server_1b_ps_server_1b_port
-      disk.device.write.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests.rate_cmaui_1c1
-      disk.device.write.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes_cmaui_1c1
-      disk.device.write.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests.rate_cmaui_1c1
-      feature_server_1b_ps:
-      - abstract_ps_server_1b
-      - feature_ps_server_1b
-      disk.write.requests.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.requests.rate_ps_server_1b
-      disk.device.write.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.requests_oam_server_1c2
-      disk.device.write.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes.rate_cmaui_1c1
-      disk.device.write.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes_cmaui_1c1
-      host_server_1b_pd:
-      - abstract_pd_server_1b
-      - host_pd_server_1b
-      disk.device.read.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.requests_oam_server_1c2
-      disk.ephemeral.size_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.ephemeral.size_ps_server_1b
-      disk.read.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.read.bytes_pd_server_1b
-      host_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - host_oam_server_1c2
-      disk.device.read.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.requests_oam_server_1c2
-      memory_server_1b_pd:
-      - abstract_pd_server_1b
-      - memory_pd_server_1b
-      host_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - host_oam_server_1c2
-      network.incoming.packets.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.packets.rate_oam_server_1c2_oam_port
-      disk.write.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.bytes_ps_server_1b
-      network.incoming.packets.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.packets.rate_oam_server_1c2_oam_port
-      end_point_packet_external_network:
-      - packet_external_network
-      - end_point
-      network.outpoing.packets_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outpoing.packets_pd_server_1b_pd_server_1b_port
-      feature_server_1b_pd:
-      - abstract_pd_server_1b
-      - feature_pd_server_1b
-      disk.device.read.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests_cmaui_1c1
-      disk.allocation_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.allocation_cmaui_1c1
-      disk.device.read.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests_cmaui_1c1
-      disk.device.allocation_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.allocation_pd_server_1b
-      disk.root.size_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.root.size_ps_server_1b
-      disk.device.allocation_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.allocation_oam_server_1c2
-      disk.device.allocation_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.allocation_oam_server_1c2
-      network.outgoing.bytes_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outgoing.bytes_pd_server_1b_pd_server_1b_port
-      disk.write.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.bytes_pd_server_1b
-      disk.write.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.requests_cmaui_1c1
-      disk.write.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.requests_cmaui_1c1
-      disk.device.capacity_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.capacity_pd_server_1b
-      network.outgoing.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
-      disk.root.size_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.root.size_pd_server_1b
-      cpu_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu_cmaui_1c1
-      network.outgoing.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
-      cpu_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu_cmaui_1c1
-      cpu_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu_oam_server_1c2
-      disk.device.capacity_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.capacity_ps_server_1b
-      disk.write.requests.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.requests.rate_pd_server_1b
-      cpu_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu_oam_server_1c2
-      link_packet_external_network:
-      - packet_external_network
-      - link
-      disk.device.read.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes.rate_cmaui_1c1
-      disk.device.read.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes.rate_cmaui_1c1
-      host_server_1b_ps:
-      - abstract_ps_server_1b
-      - host_ps_server_1b
-      disk.write.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.requests.rate_oam_server_1c2
-      cpu.delta_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu.delta_oam_server_1c2
-      disk.iops_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.iops_pd_server_1b
-      disk.write.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.requests.rate_oam_server_1c2
-      disk.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.usage_cmaui_1c1
-      disk.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.usage_cmaui_1c1
-      disk.device.allocation_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.allocation_ps_server_1b
-      end_point_packet_internal_network:
-      - packet_internal_network
-      - end_point
-      network.incoming.bytes_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.bytes_oam_server_1c2_oam_port
-      feature_packet_internal_network:
-      - packet_internal_network
-      - feature
-      network.incoming.bytes_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.bytes_oam_server_1c2_oam_port
-      forwarder_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - forwarder_pd_server_1b_pd_server_1b_port
-      disk.device.write.requests.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.requests.rate_ps_server_1b
-      attachment_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - attachment_cmaui_1c1_cmaui_port
-      network.outgoing.bytes.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.bytes.rate_oam_server_1c2_oam_port
-      network.outgoing.bytes.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.bytes.rate_oam_server_1c2_oam_port
-      disk.iops_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.iops_ps_server_1b
-      disk.capacity_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.capacity_cmaui_1c1
-      network.outgoing.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
-      network.outgoing.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
-      attachment_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - attachment_cmaui_1c1_cmaui_port
-      disk.capacity_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.capacity_cmaui_1c1
-      disk.ephemeral.size_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.ephemeral.size_oam_server_1c2
-      disk.read.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.read.bytes.rate_ps_server_1b
-      disk.ephemeral.size_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.ephemeral.size_oam_server_1c2
-      disk.device.read.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests.rate_cmaui_1c1
-      disk.device.read.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.bytes_oam_server_1c2
-      disk.device.read.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.bytes_oam_server_1c2
-      disk.device.read.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests.rate_cmaui_1c1
-      network.incoming.packets_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.packets_ps_server_1b_ps_server_1b_port
-      disk.write.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.requests_ps_server_1b
-      feature_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - feature_pd_server_1b_pd_server_1b_port
-      disk.latency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.latency_cmaui_1c1
-      scalable_server_1b_ps:
-      - abstract_ps_server_1b
-      - scalable_ps_server_1b
-      disk.latency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.latency_cmaui_1c1
-      cpu.delta_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu.delta_oam_server_1c2
-      disk.device.read.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.bytes.rate_oam_server_1c2
-      disk.device.read.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.bytes.rate_oam_server_1c2
-      scalable_server_1b_pd:
-      - abstract_pd_server_1b
-      - scalable_pd_server_1b
-      disk.write.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.requests_pd_server_1b
-      disk.latency_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.latency_ps_server_1b
-      disk.write.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.bytes_cmaui_1c1
-      network.outgoing.bytes.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outgoing.bytes.rate_pd_server_1b_pd_server_1b_port
-      disk.write.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.bytes_cmaui_1c1
-      feature_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - feature_oam_server_1c2_oam_port
-      feature_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - feature_oam_server_1c2_oam_port
-      network.incoming.packets.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.packets.rate_pd_server_1b_pd_server_1b_port
-      disk.device.latency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.latency_cmaui_1c1
-      disk.read.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.read.bytes.rate_pd_server_1b
-      scalable_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - scalable_cmaui_1c1
-      link_packet_internal_network:
-      - packet_internal_network
-      - link
-      disk.device.latency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.latency_cmaui_1c1
-      scalable_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - scalable_cmaui_1c1
-      cpu.delta_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu.delta_cmaui_1c1
-      endpoint_server_1b_pd:
-      - abstract_pd_server_1b
-      - endpoint_pd_server_1b
-      cpu.delta_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu.delta_cmaui_1c1
-      endpoint_server_1b_ps:
-      - abstract_ps_server_1b
-      - endpoint_ps_server_1b
-      network.incoming.packets_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.packets_oam_server_1c2_oam_port
-      network.incoming.packets_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.packets_oam_server_1c2_oam_port
-      network.incoming.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
-      network.outgoing.bytes_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outgoing.bytes_ps_server_1b_ps_server_1b_port
-      network.incoming.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
-      disk.device.read.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.bytes_ps_server_1b
-      disk.iops_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.iops_cmaui_1c1
-      disk.iops_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.iops_cmaui_1c1
-      disk.device.write.requests.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.requests.rate_pd_server_1b
-      memory.resident_server_1b_pd:
-      - abstract_pd_server_1b
-      - memory.resident_pd_server_1b
-      disk.device.write.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.bytes_oam_server_1c2
-      disk.device.write.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.bytes_oam_server_1c2
-      memory.resident_server_1b_ps:
-      - abstract_ps_server_1b
-      - memory.resident_ps_server_1b
-      disk.device.read.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.bytes_pd_server_1b
-      endpoint_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - endpoint_oam_server_1c2
-      endpoint_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - endpoint_oam_server_1c2
-    requirements:
-      dependency_server_1b_pd:
-      - abstract_pd_server_1b
-      - dependency_pd_server_1b
-      link_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - link_pd_server_1b_pd_server_1b_port
-      local_storage_server_1b_ps:
-      - abstract_ps_server_1b
-      - local_storage_ps_server_1b
-      dependency_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - dependency_oam_server_1c2_oam_port
-      dependency_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - dependency_oam_server_1c2_oam_port
-      dependency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1
-      dependency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1
-      link_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - link_ps_server_1b_ps_server_1b_port
-      local_storage_server_1b_pd:
-      - abstract_pd_server_1b
-      - local_storage_pd_server_1b
-      dependency_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - dependency_ps_server_1b_ps_server_1b_port
-      dependency_server_1b_ps:
-      - abstract_ps_server_1b
-      - dependency_ps_server_1b
-      dependency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - dependency_oam_server_1c2
-      dependency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - dependency_oam_server_1c2
-      local_storage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - local_storage_oam_server_1c2
-      local_storage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - local_storage_oam_server_1c2
-      dependency_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - dependency_pd_server_1b_pd_server_1b_port
-      dependency_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1_cmaui_port
-      dependency_packet_internal_network:
-      - packet_internal_network
-      - dependency
-      local_storage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - local_storage_cmaui_1c1
-      local_storage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - local_storage_cmaui_1c1
-      dependency_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1_cmaui_port
-      dependency_packet_external_network:
-      - packet_external_network
-      - dependency
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    p1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    p2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    cmaui_1c1_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    ps_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    packet_internal_network_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    pd_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: PD server names\r
+      entry_schema:\r
+        type: string\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    oam_server_1c2_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    cmaui_1c1_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    ps_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Ps server names\r
+      entry_schema:\r
+        type: string\r
+    cmaui_1c1_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    pd_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PD server\r
+    pd_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    packet_external_network_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availabilityzone name\r
+    ps_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PS server\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    ps_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Ps Image server\r
+    net:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    pd_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: PD Image server\r
+    oam_server_1c2_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    oam_server_1c2_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_cmaui_1c1:\r
+      type: org.openecomp.resource.abstract.nodes.cmaui_1c1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_cmaui_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        port_cmaui_port_network:\r
+        - packet_internal_network\r
+        - packet_internal_network\r
+        compute_cmaui_1c1_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        vm_flavor_name:\r
+          get_input: cmaui_1c1_flavor\r
+        port_cmaui_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_cmaui_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_image_name:\r
+          get_input: cmaui_1c1_image\r
+        port_cmaui_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        compute_cmaui_1c1_name:\r
+        - get_input:\r
+          - cmaui_1c1_names\r
+          - 1\r
+        - get_input:\r
+          - cmaui_1c1_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_cmaui_1c1_cmaui_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_internal_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_pd_server_1b:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_1b_name:\r
+        - get_input:\r
+          - pd_server_1b_names\r
+          - 0\r
+        vm_flavor_name:\r
+          get_input: pd_server_1b_flavor\r
+        vm_image_name:\r
+          get_input: pd_server_1b_image\r
+        port_pd_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_pd_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - pd_server_1b_ips\r
+            - 0\r
+        port_pd_server_1b_port_network:\r
+        - get_input: net\r
+        compute_pd_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_pd_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_ps_server_1b:\r
+      type: org.openecomp.resource.abstract.nodes.ps_server_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_ps_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - ps_server_1b_ips\r
+            - 0\r
+        vm_flavor_name:\r
+          get_input: ps_server_1b_flavor\r
+        port_ps_server_1b_port_network:\r
+        - get_input: net\r
+        port_ps_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: ps_server_1b_image\r
+        port_ps_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        compute_ps_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        compute_ps_server_1b_name:\r
+        - get_input:\r
+          - ps_server_1b_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_ps_server_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    packet_external_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_external_network_name\r
+    packet_internal_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_internal_network_name\r
+    abstract_oam_server_1c2_1:\r
+      type: org.openecomp.resource.abstract.nodes.oam_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_oam_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_oam_server_1c2_name:\r
+        - get_input:\r
+          - oam_server_1c2_names\r
+          - 1\r
+        port_oam_port_network:\r
+        - packet_external_network\r
+        vm_flavor_name:\r
+          get_input: oam_server_1c2_flavor\r
+        compute_oam_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_oam_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: oam_server_1c2_image\r
+        port_oam_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_oam_port_replacement_policy:\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_oam_server_1c2_oam_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_external_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_oam_server_1c2_0:\r
+      type: org.openecomp.resource.abstract.nodes.oam_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_oam_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_oam_server_1c2_name:\r
+        - get_input:\r
+          - oam_server_1c2_names\r
+          - 0\r
+        port_oam_port_network:\r
+        - packet_internal_network\r
+        vm_flavor_name:\r
+          get_input: oam_server_1c2_flavor\r
+        compute_oam_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_oam_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: oam_server_1c2_image\r
+        port_oam_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_oam_port_replacement_policy:\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_oam_server_1c2_oam_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_internal_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    nested1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested1.yml\r
+        description: nested1\r
+      members:\r
+      - packet_external_network\r
+      - packet_internal_network\r
+      - abstract_ps_server_1b\r
+      - abstract_oam_server_1c2_0\r
+      - abstract_oam_server_1c2_1\r
+      - abstract_pd_server_1b\r
+      - abstract_cmaui_1c1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+    capabilities:\r
+      disk.capacity_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.capacity_pd_server_1b\r
+      disk.device.write.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.bytes.rate_oam_server_1c2\r
+      disk.read.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes_cmaui_1c1\r
+      disk.device.write.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.bytes.rate_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.bytes.rate_ps_server_1b\r
+      disk.read.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes_cmaui_1c1\r
+      disk.usage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.usage_pd_server_1b\r
+      disk.iops_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.iops_oam_server_1c2\r
+      disk.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.usage_oam_server_1c2\r
+      disk.read.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.requests_cmaui_1c1\r
+      feature_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1\r
+      disk.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.usage_oam_server_1c2\r
+      network.incoming.bytes_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.bytes_pd_server_1b_pd_server_1b_port\r
+      feature_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1\r
+      disk.read.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.requests_cmaui_1c1\r
+      disk.device.iops_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.iops_ps_server_1b\r
+      network.outgoing.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes_cmaui_1c1_cmaui_port\r
+      disk.iops_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.iops_oam_server_1c2\r
+      network.outgoing.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes_cmaui_1c1_cmaui_port\r
+      network.outgoing.packets.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.packets.rate_oam_server_1c2_oam_port\r
+      network.outgoing.packets.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.packets.rate_oam_server_1c2_oam_port\r
+      disk.device.iops_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.iops_pd_server_1b\r
+      network.incoming.packets_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.packets_pd_server_1b_pd_server_1b_port\r
+      attachment_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - attachment_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.requests.rate_oam_server_1c2\r
+      forwarder_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - forwarder_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.requests.rate_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.bytes.rate_pd_server_1b\r
+      disk.read.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.bytes.rate_oam_server_1c2\r
+      disk.read.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.bytes.rate_oam_server_1c2\r
+      scalable_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - scalable_oam_server_1c2\r
+      disk.latency_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.latency_pd_server_1b\r
+      scalable_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - scalable_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.requests.rate_pd_server_1b\r
+      disk.device.write.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests_cmaui_1c1\r
+      disk.device.write.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests_cmaui_1c1\r
+      disk.device.read.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes_cmaui_1c1\r
+      disk.device.read.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes_cmaui_1c1\r
+      disk.device.read.requests.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.requests.rate_ps_server_1b\r
+      disk.device.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.usage_oam_server_1c2\r
+      disk.device.capacity_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.capacity_oam_server_1c2\r
+      disk.device.capacity_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.capacity_oam_server_1c2\r
+      binding_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - binding_ps_server_1b\r
+      binding_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - binding_pd_server_1b\r
+      disk.device.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.usage_oam_server_1c2\r
+      memory.usage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - memory.usage_pd_server_1b\r
+      network.outpoing.packets_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outpoing.packets_oam_server_1c2_oam_port\r
+      network.outpoing.packets_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outpoing.packets_oam_server_1c2_oam_port\r
+      binding_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1_cmaui_port\r
+      binding_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1_cmaui_port\r
+      memory.usage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - memory.usage_ps_server_1b\r
+      cpu_util_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - cpu_util_pd_server_1b\r
+      cpu_util_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu_util_oam_server_1c2\r
+      cpu_util_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu_util_oam_server_1c2\r
+      memory_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory_oam_server_1c2\r
+      memory_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory_oam_server_1c2\r
+      disk.write.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.bytes_oam_server_1c2\r
+      disk.write.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.bytes_oam_server_1c2\r
+      memory.resident_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory.resident_oam_server_1c2\r
+      memory.resident_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory.resident_oam_server_1c2\r
+      cpu_util_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - cpu_util_ps_server_1b\r
+      network.incoming.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes_cmaui_1c1_cmaui_port\r
+      network.incoming.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes_cmaui_1c1_cmaui_port\r
+      os_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - os_oam_server_1c2\r
+      disk.device.iops_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.iops_cmaui_1c1\r
+      instance_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - instance_pd_server_1b\r
+      disk.device.iops_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.iops_cmaui_1c1\r
+      os_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - os_oam_server_1c2\r
+      disk.device.write.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.bytes_pd_server_1b\r
+      disk.device.allocation_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.allocation_cmaui_1c1\r
+      disk.device.allocation_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.allocation_cmaui_1c1\r
+      feature_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - feature_oam_server_1c2\r
+      disk.device.write.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.bytes_ps_server_1b\r
+      network.incoming.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets.rate_cmaui_1c1_cmaui_port\r
+      vcpus_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - vcpus_cmaui_1c1\r
+      network.incoming.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets.rate_cmaui_1c1_cmaui_port\r
+      feature_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1_cmaui_port\r
+      network.incoming.bytes.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.bytes.rate_pd_server_1b_pd_server_1b_port\r
+      network.outgoing.bytes_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.bytes_oam_server_1c2_oam_port\r
+      feature_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1_cmaui_port\r
+      instance_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - instance_ps_server_1b\r
+      feature_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - feature_oam_server_1c2\r
+      network.outgoing.bytes_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.bytes_oam_server_1c2_oam_port\r
+      disk.device.capacity_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.capacity_cmaui_1c1\r
+      instance_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - instance_cmaui_1c1\r
+      cpu.delta_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - cpu.delta_ps_server_1b\r
+      instance_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - instance_cmaui_1c1\r
+      disk.device.read.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.requests.rate_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.requests.rate_oam_server_1c2\r
+      attachment_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - attachment_oam_server_1c2_oam_port\r
+      disk.device.write.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.bytes.rate_pd_server_1b\r
+      disk.capacity_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.capacity_oam_server_1c2\r
+      disk.capacity_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.capacity_oam_server_1c2\r
+      cpu.delta_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - cpu.delta_pd_server_1b\r
+      attachment_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - attachment_oam_server_1c2_oam_port\r
+      disk.device.write.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.requests_pd_server_1b\r
+      disk.write.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.bytes.rate_oam_server_1c2\r
+      disk.write.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.bytes.rate_oam_server_1c2\r
+      endpoint_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - endpoint_cmaui_1c1\r
+      network.outgoing.packets.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outgoing.packets.rate_ps_server_1b_ps_server_1b_port\r
+      endpoint_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - endpoint_cmaui_1c1\r
+      disk.device.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.usage_cmaui_1c1\r
+      disk.device.capacity_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.capacity_cmaui_1c1\r
+      disk.device.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.usage_cmaui_1c1\r
+      network.incoming.bytes_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.bytes_ps_server_1b_ps_server_1b_port\r
+      attachment_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - attachment_pd_server_1b_pd_server_1b_port\r
+      vcpus_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - vcpus_cmaui_1c1\r
+      binding_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - binding_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.bytes.rate_ps_server_1b\r
+      forwarder_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - forwarder_cmaui_1c1_cmaui_port\r
+      forwarder_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - forwarder_cmaui_1c1_cmaui_port\r
+      disk.device.write.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.requests_ps_server_1b\r
+      disk.device.latency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.latency_oam_server_1c2\r
+      disk.device.latency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.latency_oam_server_1c2\r
+      feature_packet_external_network:\r
+      - packet_external_network\r
+      - feature\r
+      disk.write.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests.rate_cmaui_1c1\r
+      disk.write.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests.rate_cmaui_1c1\r
+      disk.device.read.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.requests_pd_server_1b\r
+      disk.read.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.read.requests_pd_server_1b\r
+      cpu_util_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu_util_cmaui_1c1\r
+      disk.allocation_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.allocation_oam_server_1c2\r
+      disk.allocation_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.allocation_oam_server_1c2\r
+      cpu_util_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu_util_cmaui_1c1\r
+      disk.device.read.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.requests_ps_server_1b\r
+      binding_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - binding_pd_server_1b_pd_server_1b_port\r
+      disk.read.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.bytes_oam_server_1c2\r
+      disk.read.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.bytes_oam_server_1c2\r
+      cpu_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - cpu_pd_server_1b\r
+      binding_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - binding_oam_server_1c2_oam_port\r
+      disk.write.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes.rate_cmaui_1c1\r
+      disk.write.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes.rate_cmaui_1c1\r
+      disk.allocation_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.allocation_pd_server_1b\r
+      binding_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - binding_oam_server_1c2_oam_port\r
+      disk.read.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes.rate_cmaui_1c1\r
+      disk.read.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes.rate_cmaui_1c1\r
+      host_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - host_cmaui_1c1\r
+      host_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - host_cmaui_1c1\r
+      cpu_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - cpu_ps_server_1b\r
+      network.outpoing.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outpoing.packets_cmaui_1c1_cmaui_port\r
+      disk.allocation_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.allocation_ps_server_1b\r
+      network.outpoing.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outpoing.packets_cmaui_1c1_cmaui_port\r
+      disk.latency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.latency_oam_server_1c2\r
+      disk.latency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.latency_oam_server_1c2\r
+      disk.read.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.read.requests_ps_server_1b\r
+      disk.capacity_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.capacity_ps_server_1b\r
+      memory.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory.usage_oam_server_1c2\r
+      network.outpoing.packets_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outpoing.packets_ps_server_1b_ps_server_1b_port\r
+      memory.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory.usage_oam_server_1c2\r
+      disk.read.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.requests_oam_server_1c2\r
+      attachment_packet_external_network:\r
+      - packet_external_network\r
+      - attachment\r
+      disk.read.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.requests_oam_server_1c2\r
+      disk.usage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.usage_ps_server_1b\r
+      disk.root.size_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.root.size_oam_server_1c2\r
+      memory.resident_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory.resident_cmaui_1c1\r
+      disk.root.size_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.root.size_oam_server_1c2\r
+      memory.resident_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory.resident_cmaui_1c1\r
+      network.incoming.bytes.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.bytes.rate_ps_server_1b_ps_server_1b_port\r
+      network.incoming.bytes.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.bytes.rate_oam_server_1c2_oam_port\r
+      os_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - os_cmaui_1c1\r
+      os_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - os_cmaui_1c1\r
+      instance_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - instance_oam_server_1c2\r
+      instance_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - instance_oam_server_1c2\r
+      network.incoming.bytes.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.bytes.rate_oam_server_1c2_oam_port\r
+      vcpus_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - vcpus_pd_server_1b\r
+      memory.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory.usage_cmaui_1c1\r
+      disk.write.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.bytes.rate_ps_server_1b\r
+      memory.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory.usage_cmaui_1c1\r
+      binding_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1\r
+      memory_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory_cmaui_1c1\r
+      binding_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1\r
+      feature_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - feature_ps_server_1b_ps_server_1b_port\r
+      disk.device.iops_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.iops_oam_server_1c2\r
+      vcpus_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - vcpus_ps_server_1b\r
+      disk.device.iops_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.iops_oam_server_1c2\r
+      disk.write.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.bytes.rate_pd_server_1b\r
+      forwarder_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - forwarder_oam_server_1c2_oam_port\r
+      forwarder_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - forwarder_oam_server_1c2_oam_port\r
+      binding_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - binding_oam_server_1c2\r
+      binding_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - binding_oam_server_1c2\r
+      os_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - os_pd_server_1b\r
+      attachment_packet_internal_network:\r
+      - packet_internal_network\r
+      - attachment\r
+      network.outgoing.packets.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.packets.rate_pd_server_1b_pd_server_1b_port\r
+      memory_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory_cmaui_1c1\r
+      disk.device.latency_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.latency_pd_server_1b\r
+      disk.write.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.requests_oam_server_1c2\r
+      disk.device.usage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.usage_pd_server_1b\r
+      disk.write.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.requests_oam_server_1c2\r
+      vcpus_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - vcpus_oam_server_1c2\r
+      vcpus_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - vcpus_oam_server_1c2\r
+      os_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - os_ps_server_1b\r
+      disk.device.latency_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.latency_ps_server_1b\r
+      disk.ephemeral.size_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.ephemeral.size_cmaui_1c1\r
+      disk.ephemeral.size_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.ephemeral.size_cmaui_1c1\r
+      disk.root.size_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.root.size_cmaui_1c1\r
+      disk.device.usage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.usage_ps_server_1b\r
+      disk.root.size_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.root.size_cmaui_1c1\r
+      disk.read.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.read.bytes_ps_server_1b\r
+      network.incoming.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets_cmaui_1c1_cmaui_port\r
+      disk.device.write.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes.rate_cmaui_1c1\r
+      disk.ephemeral.size_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.ephemeral.size_pd_server_1b\r
+      disk.device.write.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.requests_oam_server_1c2\r
+      disk.allocation_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.allocation_cmaui_1c1\r
+      memory_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - memory_ps_server_1b\r
+      network.incoming.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outgoing.bytes.rate_ps_server_1b_ps_server_1b_port\r
+      network.incoming.packets.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.packets.rate_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests.rate_cmaui_1c1\r
+      disk.device.write.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes_cmaui_1c1\r
+      disk.device.write.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests.rate_cmaui_1c1\r
+      feature_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - feature_ps_server_1b\r
+      disk.write.requests.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.requests.rate_ps_server_1b\r
+      disk.device.write.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.requests_oam_server_1c2\r
+      disk.device.write.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes.rate_cmaui_1c1\r
+      disk.device.write.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes_cmaui_1c1\r
+      host_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - host_pd_server_1b\r
+      disk.device.read.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.requests_oam_server_1c2\r
+      disk.ephemeral.size_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.ephemeral.size_ps_server_1b\r
+      disk.read.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.read.bytes_pd_server_1b\r
+      host_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - host_oam_server_1c2\r
+      disk.device.read.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.requests_oam_server_1c2\r
+      memory_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - memory_pd_server_1b\r
+      host_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - host_oam_server_1c2\r
+      network.incoming.packets.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.packets.rate_oam_server_1c2_oam_port\r
+      disk.write.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.bytes_ps_server_1b\r
+      network.incoming.packets.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.packets.rate_oam_server_1c2_oam_port\r
+      end_point_packet_external_network:\r
+      - packet_external_network\r
+      - end_point\r
+      network.outpoing.packets_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outpoing.packets_pd_server_1b_pd_server_1b_port\r
+      feature_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - feature_pd_server_1b\r
+      disk.device.read.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests_cmaui_1c1\r
+      disk.allocation_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.allocation_cmaui_1c1\r
+      disk.device.read.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests_cmaui_1c1\r
+      disk.device.allocation_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.allocation_pd_server_1b\r
+      disk.root.size_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.root.size_ps_server_1b\r
+      disk.device.allocation_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.allocation_oam_server_1c2\r
+      disk.device.allocation_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.allocation_oam_server_1c2\r
+      network.outgoing.bytes_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.bytes_pd_server_1b_pd_server_1b_port\r
+      disk.write.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.bytes_pd_server_1b\r
+      disk.write.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests_cmaui_1c1\r
+      disk.write.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests_cmaui_1c1\r
+      disk.device.capacity_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.capacity_pd_server_1b\r
+      network.outgoing.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port\r
+      disk.root.size_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.root.size_pd_server_1b\r
+      cpu_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu_cmaui_1c1\r
+      network.outgoing.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port\r
+      cpu_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu_cmaui_1c1\r
+      cpu_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu_oam_server_1c2\r
+      disk.device.capacity_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.capacity_ps_server_1b\r
+      disk.write.requests.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.requests.rate_pd_server_1b\r
+      cpu_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu_oam_server_1c2\r
+      link_packet_external_network:\r
+      - packet_external_network\r
+      - link\r
+      disk.device.read.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes.rate_cmaui_1c1\r
+      disk.device.read.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes.rate_cmaui_1c1\r
+      host_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - host_ps_server_1b\r
+      disk.write.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.requests.rate_oam_server_1c2\r
+      cpu.delta_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu.delta_oam_server_1c2\r
+      disk.iops_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.iops_pd_server_1b\r
+      disk.write.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.requests.rate_oam_server_1c2\r
+      disk.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.usage_cmaui_1c1\r
+      disk.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.usage_cmaui_1c1\r
+      disk.device.allocation_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.allocation_ps_server_1b\r
+      end_point_packet_internal_network:\r
+      - packet_internal_network\r
+      - end_point\r
+      network.incoming.bytes_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.bytes_oam_server_1c2_oam_port\r
+      feature_packet_internal_network:\r
+      - packet_internal_network\r
+      - feature\r
+      network.incoming.bytes_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.bytes_oam_server_1c2_oam_port\r
+      forwarder_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - forwarder_pd_server_1b_pd_server_1b_port\r
+      disk.device.write.requests.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.requests.rate_ps_server_1b\r
+      attachment_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - attachment_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.bytes.rate_oam_server_1c2_oam_port\r
+      network.outgoing.bytes.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.bytes.rate_oam_server_1c2_oam_port\r
+      disk.iops_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.iops_ps_server_1b\r
+      disk.capacity_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.capacity_cmaui_1c1\r
+      network.outgoing.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port\r
+      network.outgoing.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port\r
+      attachment_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - attachment_cmaui_1c1_cmaui_port\r
+      disk.capacity_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.capacity_cmaui_1c1\r
+      disk.ephemeral.size_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.ephemeral.size_oam_server_1c2\r
+      disk.read.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.read.bytes.rate_ps_server_1b\r
+      disk.ephemeral.size_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.ephemeral.size_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests.rate_cmaui_1c1\r
+      disk.device.read.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.bytes_oam_server_1c2\r
+      disk.device.read.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.bytes_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests.rate_cmaui_1c1\r
+      network.incoming.packets_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.packets_ps_server_1b_ps_server_1b_port\r
+      disk.write.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.requests_ps_server_1b\r
+      feature_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - feature_pd_server_1b_pd_server_1b_port\r
+      disk.latency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.latency_cmaui_1c1\r
+      scalable_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - scalable_ps_server_1b\r
+      disk.latency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.latency_cmaui_1c1\r
+      cpu.delta_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu.delta_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.bytes.rate_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.bytes.rate_oam_server_1c2\r
+      scalable_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - scalable_pd_server_1b\r
+      disk.write.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.requests_pd_server_1b\r
+      disk.latency_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.latency_ps_server_1b\r
+      disk.write.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes_cmaui_1c1\r
+      network.outgoing.bytes.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.bytes.rate_pd_server_1b_pd_server_1b_port\r
+      disk.write.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes_cmaui_1c1\r
+      feature_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - feature_oam_server_1c2_oam_port\r
+      feature_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - feature_oam_server_1c2_oam_port\r
+      network.incoming.packets.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.packets.rate_pd_server_1b_pd_server_1b_port\r
+      disk.device.latency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.latency_cmaui_1c1\r
+      disk.read.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.read.bytes.rate_pd_server_1b\r
+      scalable_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - scalable_cmaui_1c1\r
+      link_packet_internal_network:\r
+      - packet_internal_network\r
+      - link\r
+      disk.device.latency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.latency_cmaui_1c1\r
+      scalable_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - scalable_cmaui_1c1\r
+      cpu.delta_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu.delta_cmaui_1c1\r
+      endpoint_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - endpoint_pd_server_1b\r
+      cpu.delta_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu.delta_cmaui_1c1\r
+      endpoint_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - endpoint_ps_server_1b\r
+      network.incoming.packets_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.packets_oam_server_1c2_oam_port\r
+      network.incoming.packets_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.packets_oam_server_1c2_oam_port\r
+      network.incoming.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outgoing.bytes_ps_server_1b_ps_server_1b_port\r
+      network.incoming.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port\r
+      disk.device.read.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.bytes_ps_server_1b\r
+      disk.iops_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.iops_cmaui_1c1\r
+      disk.iops_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.iops_cmaui_1c1\r
+      disk.device.write.requests.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.requests.rate_pd_server_1b\r
+      memory.resident_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - memory.resident_pd_server_1b\r
+      disk.device.write.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.bytes_oam_server_1c2\r
+      disk.device.write.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.bytes_oam_server_1c2\r
+      memory.resident_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - memory.resident_ps_server_1b\r
+      disk.device.read.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.bytes_pd_server_1b\r
+      endpoint_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - endpoint_oam_server_1c2\r
+      endpoint_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - endpoint_oam_server_1c2\r
+    requirements:\r
+      dependency_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - dependency_pd_server_1b\r
+      link_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - link_pd_server_1b_pd_server_1b_port\r
+      local_storage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - local_storage_ps_server_1b\r
+      dependency_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - dependency_oam_server_1c2_oam_port\r
+      dependency_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - dependency_oam_server_1c2_oam_port\r
+      dependency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1\r
+      dependency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1\r
+      link_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - link_ps_server_1b_ps_server_1b_port\r
+      local_storage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - local_storage_pd_server_1b\r
+      dependency_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - dependency_ps_server_1b_ps_server_1b_port\r
+      dependency_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - dependency_ps_server_1b\r
+      dependency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - dependency_oam_server_1c2\r
+      dependency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - dependency_oam_server_1c2\r
+      local_storage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - local_storage_oam_server_1c2\r
+      local_storage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - local_storage_oam_server_1c2\r
+      dependency_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - dependency_pd_server_1b_pd_server_1b_port\r
+      dependency_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1_cmaui_port\r
+      dependency_packet_internal_network:\r
+      - packet_internal_network\r
+      - dependency\r
+      local_storage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - local_storage_cmaui_1c1\r
+      local_storage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - local_storage_cmaui_1c1\r
+      dependency_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1_cmaui_port\r
+      dependency_packet_external_network:\r
+      - packet_external_network\r
+      - dependency\r
\ No newline at end of file
index e26f1c9..590a751 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: nested1
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    p1:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    p2:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    cmaui_1c1_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    ps_server_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    packet_internal_network_name:
-      hidden: false
-      immutable: false
-      type: string
-    pd_server_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: PD server names
-      entry_schema:
-        type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    oam_server_1c2_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    cmaui_1c1_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    ps_server_1b_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: Ps server names
-      entry_schema:
-        type: string
-    cmaui_1c1_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    pd_server_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PD server
-    pd_server_1b_ips:
-      hidden: false
-      immutable: false
-      type: string
-    packet_external_network_name:
-      hidden: false
-      immutable: false
-      type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      type: string
-      description: availabilityzone name
-    ps_server_1b_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for PS server
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      type: string
-    ps_server_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Ps Image server
-    net:
-      hidden: false
-      immutable: false
-      type: string
-    pd_server_1b_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: PD Image server
-    oam_server_1c2_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    oam_server_1c2_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_cmaui_1c1:
-      type: org.openecomp.resource.abstract.nodes.cmaui_1c1
-      directives:
-      - substitutable
-      properties:
-        port_cmaui_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        port_cmaui_port_network:
-        - packet_internal_network
-        compute_cmaui_1c1_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        vm_flavor_name:
-          get_input: cmaui_1c1_flavor
-        port_cmaui_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_cmaui_port_replacement_policy:
-        - AUTO
-        vm_image_name:
-          get_input: cmaui_1c1_image
-        port_cmaui_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        compute_cmaui_1c1_name:
-        - get_input:
-          - cmaui_1c1_names
-          - 1
-        - get_input:
-          - cmaui_1c1_names
-          - 0
-        service_template_filter:
-          substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_cmaui_1c1_cmaui_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_internal_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_pd_server_1b:
-      type: org.openecomp.resource.abstract.nodes.pd_server_1b
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_1b_name:
-        - get_input:
-          - pd_server_1b_names
-          - 0
-        vm_flavor_name:
-          get_input: pd_server_1b_flavor
-        vm_image_name:
-          get_input: pd_server_1b_image
-        port_pd_server_1b_port_replacement_policy:
-        - AUTO
-        port_pd_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_pd_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - pd_server_1b_ips
-            - 0
-        port_pd_server_1b_port_network:
-        - get_input: net
-        compute_pd_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        port_pd_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_ps_server_1b:
-      type: org.openecomp.resource.abstract.nodes.ps_server_1b
-      directives:
-      - substitutable
-      properties:
-        port_ps_server_1b_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps_server_1b_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - ps_server_1b_ips
-            - 0
-        vm_flavor_name:
-          get_input: ps_server_1b_flavor
-        port_ps_server_1b_port_network:
-        - get_input: net
-        port_ps_server_1b_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: ps_server_1b_image
-        port_ps_server_1b_port_replacement_policy:
-        - AUTO
-        compute_ps_server_1b_availability_zone:
-        - get_input: availability_zone_0
-        compute_ps_server_1b_name:
-        - get_input:
-          - ps_server_1b_names
-          - 1
-        service_template_filter:
-          substitute_service_template: Nested_ps_server_1bServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    packet_external_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_external_network_name
-    packet_internal_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_internal_network_name
-    abstract_oam_server_1c2_1:
-      type: org.openecomp.resource.abstract.nodes.oam_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_oam_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_oam_server_1c2_name:
-        - get_input:
-          - oam_server_1c2_names
-          - 1
-        port_oam_port_network:
-        - packet_external_network
-        vm_flavor_name:
-          get_input: oam_server_1c2_flavor
-        compute_oam_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        port_oam_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 1
-        vm_image_name:
-          get_input: oam_server_1c2_image
-        port_oam_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_oam_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_oam_server_1c2_oam_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_external_network
-          relationship: tosca.relationships.network.LinksTo
-    abstract_oam_server_1c2_0:
-      type: org.openecomp.resource.abstract.nodes.oam_server_1c2
-      directives:
-      - substitutable
-      properties:
-        port_oam_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_oam_server_1c2_name:
-        - get_input:
-          - oam_server_1c2_names
-          - 0
-        port_oam_port_network:
-        - packet_internal_network
-        vm_flavor_name:
-          get_input: oam_server_1c2_flavor
-        compute_oam_server_1c2_availability_zone:
-        - get_input: availability_zone_0
-        port_oam_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 1
-        vm_image_name:
-          get_input: oam_server_1c2_image
-        port_oam_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_oam_port_replacement_policy:
-        - AUTO
-        service_template_filter:
-          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml
-          count: 1
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - link_oam_server_1c2_oam_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_internal_network
-          relationship: tosca.relationships.network.LinksTo
-  groups:
-    nested1_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/nested1.yml
-        description: nested1
-      members:
-      - packet_external_network
-      - packet_internal_network
-      - abstract_ps_server_1b
-      - abstract_oam_server_1c2_0
-      - abstract_oam_server_1c2_1
-      - abstract_pd_server_1b
-      - abstract_cmaui_1c1
-  outputs:
-    all_pattern_attr_1:
-      description: all_pattern_attr_1
-      value:
-        get_attribute:
-        - abstract_oam_server_1c2_1
-        - oam_server_1c2_accessIPv4
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.nested1
-    capabilities:
-      disk.capacity_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.capacity_pd_server_1b
-      disk.device.write.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.bytes.rate_oam_server_1c2
-      disk.read.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.bytes_cmaui_1c1
-      disk.device.write.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.bytes.rate_oam_server_1c2
-      disk.device.read.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.bytes.rate_ps_server_1b
-      disk.read.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.bytes_cmaui_1c1
-      disk.usage_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.usage_pd_server_1b
-      disk.iops_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.iops_oam_server_1c2
-      disk.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.usage_oam_server_1c2
-      disk.read.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.requests_cmaui_1c1
-      feature_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1
-      disk.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.usage_oam_server_1c2
-      network.incoming.bytes_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.bytes_pd_server_1b_pd_server_1b_port
-      feature_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1
-      disk.read.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.requests_cmaui_1c1
-      disk.device.iops_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.iops_ps_server_1b
-      network.outgoing.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes_cmaui_1c1_cmaui_port
-      disk.iops_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.iops_oam_server_1c2
-      network.outgoing.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes_cmaui_1c1_cmaui_port
-      network.outgoing.packets.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.packets.rate_oam_server_1c2_oam_port
-      network.outgoing.packets.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.packets.rate_oam_server_1c2_oam_port
-      disk.device.iops_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.iops_pd_server_1b
-      network.incoming.packets_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.packets_pd_server_1b_pd_server_1b_port
-      attachment_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - attachment_ps_server_1b_ps_server_1b_port
-      disk.device.write.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.requests.rate_oam_server_1c2
-      forwarder_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - forwarder_ps_server_1b_ps_server_1b_port
-      disk.device.write.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.requests.rate_oam_server_1c2
-      disk.device.read.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.bytes.rate_pd_server_1b
-      disk.read.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.bytes.rate_oam_server_1c2
-      disk.read.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.bytes.rate_oam_server_1c2
-      scalable_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - scalable_oam_server_1c2
-      disk.latency_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.latency_pd_server_1b
-      scalable_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - scalable_oam_server_1c2
-      disk.device.read.requests.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.requests.rate_pd_server_1b
-      disk.device.write.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests_cmaui_1c1
-      disk.device.write.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests_cmaui_1c1
-      disk.device.read.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes_cmaui_1c1
-      disk.device.read.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes_cmaui_1c1
-      disk.device.read.requests.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.requests.rate_ps_server_1b
-      disk.device.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.usage_oam_server_1c2
-      disk.device.capacity_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.capacity_oam_server_1c2
-      disk.device.capacity_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.capacity_oam_server_1c2
-      binding_server_1b_ps:
-      - abstract_ps_server_1b
-      - binding_ps_server_1b
-      binding_server_1b_pd:
-      - abstract_pd_server_1b
-      - binding_pd_server_1b
-      disk.device.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.usage_oam_server_1c2
-      memory.usage_server_1b_pd:
-      - abstract_pd_server_1b
-      - memory.usage_pd_server_1b
-      network.outpoing.packets_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outpoing.packets_oam_server_1c2_oam_port
-      network.outpoing.packets_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outpoing.packets_oam_server_1c2_oam_port
-      binding_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1_cmaui_port
-      binding_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1_cmaui_port
-      memory.usage_server_1b_ps:
-      - abstract_ps_server_1b
-      - memory.usage_ps_server_1b
-      cpu_util_server_1b_pd:
-      - abstract_pd_server_1b
-      - cpu_util_pd_server_1b
-      cpu_util_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu_util_oam_server_1c2
-      cpu_util_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu_util_oam_server_1c2
-      memory_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory_oam_server_1c2
-      memory_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory_oam_server_1c2
-      disk.write.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.bytes_oam_server_1c2
-      disk.write.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.bytes_oam_server_1c2
-      memory.resident_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory.resident_oam_server_1c2
-      memory.resident_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory.resident_oam_server_1c2
-      cpu_util_server_1b_ps:
-      - abstract_ps_server_1b
-      - cpu_util_ps_server_1b
-      network.incoming.bytes_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes_cmaui_1c1_cmaui_port
-      network.incoming.bytes_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes_cmaui_1c1_cmaui_port
-      os_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - os_oam_server_1c2
-      disk.device.iops_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.iops_cmaui_1c1
-      instance_server_1b_pd:
-      - abstract_pd_server_1b
-      - instance_pd_server_1b
-      disk.device.iops_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.iops_cmaui_1c1
-      os_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - os_oam_server_1c2
-      disk.device.write.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.bytes_pd_server_1b
-      disk.device.allocation_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.allocation_cmaui_1c1
-      disk.device.allocation_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.allocation_cmaui_1c1
-      feature_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - feature_oam_server_1c2
-      disk.device.write.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.bytes_ps_server_1b
-      network.incoming.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.packets.rate_cmaui_1c1_cmaui_port
-      vcpus_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - vcpus_cmaui_1c1
-      network.incoming.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.packets.rate_cmaui_1c1_cmaui_port
-      feature_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1_cmaui_port
-      network.incoming.bytes.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.bytes.rate_pd_server_1b_pd_server_1b_port
-      network.outgoing.bytes_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.bytes_oam_server_1c2_oam_port
-      feature_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - feature_cmaui_1c1_cmaui_port
-      instance_server_1b_ps:
-      - abstract_ps_server_1b
-      - instance_ps_server_1b
-      feature_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - feature_oam_server_1c2
-      network.outgoing.bytes_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.bytes_oam_server_1c2_oam_port
-      disk.device.capacity_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.capacity_cmaui_1c1
-      instance_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - instance_cmaui_1c1
-      cpu.delta_server_1b_ps:
-      - abstract_ps_server_1b
-      - cpu.delta_ps_server_1b
-      instance_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - instance_cmaui_1c1
-      disk.device.read.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.requests.rate_oam_server_1c2
-      disk.device.read.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.requests.rate_oam_server_1c2
-      attachment_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - attachment_oam_server_1c2_oam_port
-      disk.device.write.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.bytes.rate_pd_server_1b
-      disk.capacity_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.capacity_oam_server_1c2
-      disk.capacity_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.capacity_oam_server_1c2
-      cpu.delta_server_1b_pd:
-      - abstract_pd_server_1b
-      - cpu.delta_pd_server_1b
-      attachment_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - attachment_oam_server_1c2_oam_port
-      disk.device.write.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.requests_pd_server_1b
-      disk.write.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.bytes.rate_oam_server_1c2
-      disk.write.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.bytes.rate_oam_server_1c2
-      endpoint_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - endpoint_cmaui_1c1
-      network.outgoing.packets.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outgoing.packets.rate_ps_server_1b_ps_server_1b_port
-      endpoint_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - endpoint_cmaui_1c1
-      disk.device.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.usage_cmaui_1c1
-      disk.device.capacity_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.capacity_cmaui_1c1
-      disk.device.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.usage_cmaui_1c1
-      network.incoming.bytes_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.bytes_ps_server_1b_ps_server_1b_port
-      attachment_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - attachment_pd_server_1b_pd_server_1b_port
-      vcpus_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - vcpus_cmaui_1c1
-      binding_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - binding_ps_server_1b_ps_server_1b_port
-      disk.device.write.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.bytes.rate_ps_server_1b
-      forwarder_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - forwarder_cmaui_1c1_cmaui_port
-      forwarder_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - forwarder_cmaui_1c1_cmaui_port
-      disk.device.write.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.requests_ps_server_1b
-      disk.device.latency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.latency_oam_server_1c2
-      disk.device.latency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.latency_oam_server_1c2
-      feature_packet_external_network:
-      - packet_external_network
-      - feature
-      disk.write.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.requests.rate_cmaui_1c1
-      disk.write.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.requests.rate_cmaui_1c1
-      disk.device.read.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.requests_pd_server_1b
-      disk.read.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.read.requests_pd_server_1b
-      cpu_util_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu_util_cmaui_1c1
-      disk.allocation_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.allocation_oam_server_1c2
-      disk.allocation_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.allocation_oam_server_1c2
-      cpu_util_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu_util_cmaui_1c1
-      disk.device.read.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.requests_ps_server_1b
-      binding_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - binding_pd_server_1b_pd_server_1b_port
-      disk.read.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.bytes_oam_server_1c2
-      disk.read.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.bytes_oam_server_1c2
-      cpu_server_1b_pd:
-      - abstract_pd_server_1b
-      - cpu_pd_server_1b
-      binding_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - binding_oam_server_1c2_oam_port
-      disk.write.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.bytes.rate_cmaui_1c1
-      disk.write.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.bytes.rate_cmaui_1c1
-      disk.allocation_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.allocation_pd_server_1b
-      binding_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - binding_oam_server_1c2_oam_port
-      disk.read.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.read.bytes.rate_cmaui_1c1
-      disk.read.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.read.bytes.rate_cmaui_1c1
-      host_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - host_cmaui_1c1
-      host_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - host_cmaui_1c1
-      cpu_server_1b_ps:
-      - abstract_ps_server_1b
-      - cpu_ps_server_1b
-      network.outpoing.packets_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outpoing.packets_cmaui_1c1_cmaui_port
-      disk.allocation_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.allocation_ps_server_1b
-      network.outpoing.packets_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outpoing.packets_cmaui_1c1_cmaui_port
-      disk.latency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.latency_oam_server_1c2
-      disk.latency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.latency_oam_server_1c2
-      disk.read.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.read.requests_ps_server_1b
-      disk.capacity_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.capacity_ps_server_1b
-      memory.usage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - memory.usage_oam_server_1c2
-      network.outpoing.packets_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outpoing.packets_ps_server_1b_ps_server_1b_port
-      memory.usage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - memory.usage_oam_server_1c2
-      disk.read.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.read.requests_oam_server_1c2
-      attachment_packet_external_network:
-      - packet_external_network
-      - attachment
-      disk.read.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.read.requests_oam_server_1c2
-      disk.usage_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.usage_ps_server_1b
-      disk.root.size_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.root.size_oam_server_1c2
-      memory.resident_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory.resident_cmaui_1c1
-      disk.root.size_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.root.size_oam_server_1c2
-      memory.resident_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory.resident_cmaui_1c1
-      network.incoming.bytes.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.bytes.rate_ps_server_1b_ps_server_1b_port
-      network.incoming.bytes.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.bytes.rate_oam_server_1c2_oam_port
-      os_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - os_cmaui_1c1
-      os_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - os_cmaui_1c1
-      instance_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - instance_oam_server_1c2
-      instance_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - instance_oam_server_1c2
-      network.incoming.bytes.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.bytes.rate_oam_server_1c2_oam_port
-      vcpus_server_1b_pd:
-      - abstract_pd_server_1b
-      - vcpus_pd_server_1b
-      memory.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory.usage_cmaui_1c1
-      disk.write.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.bytes.rate_ps_server_1b
-      memory.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory.usage_cmaui_1c1
-      binding_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1
-      memory_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - memory_cmaui_1c1
-      binding_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - binding_cmaui_1c1
-      feature_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - feature_ps_server_1b_ps_server_1b_port
-      disk.device.iops_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.iops_oam_server_1c2
-      vcpus_server_1b_ps:
-      - abstract_ps_server_1b
-      - vcpus_ps_server_1b
-      disk.device.iops_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.iops_oam_server_1c2
-      disk.write.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.bytes.rate_pd_server_1b
-      forwarder_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - forwarder_oam_server_1c2_oam_port
-      forwarder_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - forwarder_oam_server_1c2_oam_port
-      binding_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - binding_oam_server_1c2
-      binding_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - binding_oam_server_1c2
-      os_server_1b_pd:
-      - abstract_pd_server_1b
-      - os_pd_server_1b
-      attachment_packet_internal_network:
-      - packet_internal_network
-      - attachment
-      network.outgoing.packets.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outgoing.packets.rate_pd_server_1b_pd_server_1b_port
-      memory_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - memory_cmaui_1c1
-      disk.device.latency_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.latency_pd_server_1b
-      disk.write.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.requests_oam_server_1c2
-      disk.device.usage_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.usage_pd_server_1b
-      disk.write.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.requests_oam_server_1c2
-      vcpus_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - vcpus_oam_server_1c2
-      vcpus_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - vcpus_oam_server_1c2
-      os_server_1b_ps:
-      - abstract_ps_server_1b
-      - os_ps_server_1b
-      disk.device.latency_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.latency_ps_server_1b
-      disk.ephemeral.size_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.ephemeral.size_cmaui_1c1
-      disk.ephemeral.size_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.ephemeral.size_cmaui_1c1
-      disk.root.size_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.root.size_cmaui_1c1
-      disk.device.usage_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.usage_ps_server_1b
-      disk.root.size_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.root.size_cmaui_1c1
-      disk.read.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.read.bytes_ps_server_1b
-      network.incoming.packets_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.packets_cmaui_1c1_cmaui_port
-      disk.device.write.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes.rate_cmaui_1c1
-      disk.ephemeral.size_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.ephemeral.size_pd_server_1b
-      disk.device.write.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.requests_oam_server_1c2
-      disk.allocation_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.allocation_cmaui_1c1
-      memory_server_1b_ps:
-      - abstract_ps_server_1b
-      - memory_ps_server_1b
-      network.incoming.packets_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.packets_cmaui_1c1_cmaui_port
-      network.outgoing.bytes.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outgoing.bytes.rate_ps_server_1b_ps_server_1b_port
-      network.incoming.packets.rate_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.packets.rate_ps_server_1b_ps_server_1b_port
-      disk.device.write.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests.rate_cmaui_1c1
-      disk.device.write.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes_cmaui_1c1
-      disk.device.write.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.requests.rate_cmaui_1c1
-      feature_server_1b_ps:
-      - abstract_ps_server_1b
-      - feature_ps_server_1b
-      disk.write.requests.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.requests.rate_ps_server_1b
-      disk.device.write.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.requests_oam_server_1c2
-      disk.device.write.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes.rate_cmaui_1c1
-      disk.device.write.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.write.bytes_cmaui_1c1
-      host_server_1b_pd:
-      - abstract_pd_server_1b
-      - host_pd_server_1b
-      disk.device.read.requests_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.requests_oam_server_1c2
-      disk.ephemeral.size_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.ephemeral.size_ps_server_1b
-      disk.read.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.read.bytes_pd_server_1b
-      host_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - host_oam_server_1c2
-      disk.device.read.requests_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.requests_oam_server_1c2
-      memory_server_1b_pd:
-      - abstract_pd_server_1b
-      - memory_pd_server_1b
-      host_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - host_oam_server_1c2
-      network.incoming.packets.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.packets.rate_oam_server_1c2_oam_port
-      disk.write.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.bytes_ps_server_1b
-      network.incoming.packets.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.packets.rate_oam_server_1c2_oam_port
-      end_point_packet_external_network:
-      - packet_external_network
-      - end_point
-      network.outpoing.packets_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outpoing.packets_pd_server_1b_pd_server_1b_port
-      feature_server_1b_pd:
-      - abstract_pd_server_1b
-      - feature_pd_server_1b
-      disk.device.read.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests_cmaui_1c1
-      disk.allocation_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.allocation_cmaui_1c1
-      disk.device.read.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests_cmaui_1c1
-      disk.device.allocation_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.allocation_pd_server_1b
-      disk.root.size_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.root.size_ps_server_1b
-      disk.device.allocation_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.allocation_oam_server_1c2
-      disk.device.allocation_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.allocation_oam_server_1c2
-      network.outgoing.bytes_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outgoing.bytes_pd_server_1b_pd_server_1b_port
-      disk.write.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.bytes_pd_server_1b
-      disk.write.requests_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.requests_cmaui_1c1
-      disk.write.requests_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.requests_cmaui_1c1
-      disk.device.capacity_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.capacity_pd_server_1b
-      network.outgoing.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
-      disk.root.size_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.root.size_pd_server_1b
-      cpu_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu_cmaui_1c1
-      network.outgoing.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port
-      cpu_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu_cmaui_1c1
-      cpu_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu_oam_server_1c2
-      disk.device.capacity_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.capacity_ps_server_1b
-      disk.write.requests.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.requests.rate_pd_server_1b
-      cpu_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu_oam_server_1c2
-      link_packet_external_network:
-      - packet_external_network
-      - link
-      disk.device.read.bytes.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes.rate_cmaui_1c1
-      disk.device.read.bytes.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.bytes.rate_cmaui_1c1
-      host_server_1b_ps:
-      - abstract_ps_server_1b
-      - host_ps_server_1b
-      disk.write.requests.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.write.requests.rate_oam_server_1c2
-      cpu.delta_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - cpu.delta_oam_server_1c2
-      disk.iops_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.iops_pd_server_1b
-      disk.write.requests.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.write.requests.rate_oam_server_1c2
-      disk.usage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.usage_cmaui_1c1
-      disk.usage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.usage_cmaui_1c1
-      disk.device.allocation_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.allocation_ps_server_1b
-      end_point_packet_internal_network:
-      - packet_internal_network
-      - end_point
-      network.incoming.bytes_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.bytes_oam_server_1c2_oam_port
-      feature_packet_internal_network:
-      - packet_internal_network
-      - feature
-      network.incoming.bytes_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.bytes_oam_server_1c2_oam_port
-      forwarder_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - forwarder_pd_server_1b_pd_server_1b_port
-      disk.device.write.requests.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.write.requests.rate_ps_server_1b
-      attachment_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - attachment_cmaui_1c1_cmaui_port
-      network.outgoing.bytes.rate_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.outgoing.bytes.rate_oam_server_1c2_oam_port
-      network.outgoing.bytes.rate_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.outgoing.bytes.rate_oam_server_1c2_oam_port
-      disk.iops_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.iops_ps_server_1b
-      disk.capacity_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.capacity_cmaui_1c1
-      network.outgoing.packets.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
-      network.outgoing.packets.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port
-      attachment_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - attachment_cmaui_1c1_cmaui_port
-      disk.capacity_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.capacity_cmaui_1c1
-      disk.ephemeral.size_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.ephemeral.size_oam_server_1c2
-      disk.read.bytes.rate_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.read.bytes.rate_ps_server_1b
-      disk.ephemeral.size_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.ephemeral.size_oam_server_1c2
-      disk.device.read.requests.rate_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests.rate_cmaui_1c1
-      disk.device.read.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.bytes_oam_server_1c2
-      disk.device.read.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.bytes_oam_server_1c2
-      disk.device.read.requests.rate_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.read.requests.rate_cmaui_1c1
-      network.incoming.packets_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.incoming.packets_ps_server_1b_ps_server_1b_port
-      disk.write.requests_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.write.requests_ps_server_1b
-      feature_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - feature_pd_server_1b_pd_server_1b_port
-      disk.latency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.latency_cmaui_1c1
-      scalable_server_1b_ps:
-      - abstract_ps_server_1b
-      - scalable_ps_server_1b
-      disk.latency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.latency_cmaui_1c1
-      cpu.delta_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - cpu.delta_oam_server_1c2
-      disk.device.read.bytes.rate_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.read.bytes.rate_oam_server_1c2
-      disk.device.read.bytes.rate_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.read.bytes.rate_oam_server_1c2
-      scalable_server_1b_pd:
-      - abstract_pd_server_1b
-      - scalable_pd_server_1b
-      disk.write.requests_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.write.requests_pd_server_1b
-      disk.latency_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.latency_ps_server_1b
-      disk.write.bytes_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.write.bytes_cmaui_1c1
-      network.outgoing.bytes.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.outgoing.bytes.rate_pd_server_1b_pd_server_1b_port
-      disk.write.bytes_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.write.bytes_cmaui_1c1
-      feature_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - feature_oam_server_1c2_oam_port
-      feature_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - feature_oam_server_1c2_oam_port
-      network.incoming.packets.rate_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - network.incoming.packets.rate_pd_server_1b_pd_server_1b_port
-      disk.device.latency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.device.latency_cmaui_1c1
-      disk.read.bytes.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.read.bytes.rate_pd_server_1b
-      scalable_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - scalable_cmaui_1c1
-      link_packet_internal_network:
-      - packet_internal_network
-      - link
-      disk.device.latency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.device.latency_cmaui_1c1
-      scalable_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - scalable_cmaui_1c1
-      cpu.delta_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - cpu.delta_cmaui_1c1
-      endpoint_server_1b_pd:
-      - abstract_pd_server_1b
-      - endpoint_pd_server_1b
-      cpu.delta_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - cpu.delta_cmaui_1c1
-      endpoint_server_1b_ps:
-      - abstract_ps_server_1b
-      - endpoint_ps_server_1b
-      network.incoming.packets_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - network.incoming.packets_oam_server_1c2_oam_port
-      network.incoming.packets_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - network.incoming.packets_oam_server_1c2_oam_port
-      network.incoming.bytes.rate_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
-      network.outgoing.bytes_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - network.outgoing.bytes_ps_server_1b_ps_server_1b_port
-      network.incoming.bytes.rate_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port
-      disk.device.read.bytes_server_1b_ps:
-      - abstract_ps_server_1b
-      - disk.device.read.bytes_ps_server_1b
-      disk.iops_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - disk.iops_cmaui_1c1
-      disk.iops_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - disk.iops_cmaui_1c1
-      disk.device.write.requests.rate_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.write.requests.rate_pd_server_1b
-      memory.resident_server_1b_pd:
-      - abstract_pd_server_1b
-      - memory.resident_pd_server_1b
-      disk.device.write.bytes_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - disk.device.write.bytes_oam_server_1c2
-      disk.device.write.bytes_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - disk.device.write.bytes_oam_server_1c2
-      memory.resident_server_1b_ps:
-      - abstract_ps_server_1b
-      - memory.resident_ps_server_1b
-      disk.device.read.bytes_server_1b_pd:
-      - abstract_pd_server_1b
-      - disk.device.read.bytes_pd_server_1b
-      endpoint_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - endpoint_oam_server_1c2
-      endpoint_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - endpoint_oam_server_1c2
-    requirements:
-      dependency_server_1b_pd:
-      - abstract_pd_server_1b
-      - dependency_pd_server_1b
-      link_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - link_pd_server_1b_pd_server_1b_port
-      local_storage_server_1b_ps:
-      - abstract_ps_server_1b
-      - local_storage_ps_server_1b
-      dependency_oam_port_2:
-      - abstract_oam_server_1c2_1
-      - dependency_oam_server_1c2_oam_port
-      dependency_oam_port_1:
-      - abstract_oam_server_1c2_0
-      - dependency_oam_server_1c2_oam_port
-      dependency_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1
-      dependency_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1
-      link_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - link_ps_server_1b_ps_server_1b_port
-      local_storage_server_1b_pd:
-      - abstract_pd_server_1b
-      - local_storage_pd_server_1b
-      dependency_ps_server_1b_port:
-      - abstract_ps_server_1b
-      - dependency_ps_server_1b_ps_server_1b_port
-      dependency_server_1b_ps:
-      - abstract_ps_server_1b
-      - dependency_ps_server_1b
-      dependency_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - dependency_oam_server_1c2
-      dependency_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - dependency_oam_server_1c2
-      local_storage_server_1c2_oam_2:
-      - abstract_oam_server_1c2_1
-      - local_storage_oam_server_1c2
-      local_storage_server_1c2_oam_1:
-      - abstract_oam_server_1c2_0
-      - local_storage_oam_server_1c2
-      dependency_pd_server_1b_port:
-      - abstract_pd_server_1b
-      - dependency_pd_server_1b_pd_server_1b_port
-      dependency_cmaui_port_1:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1_cmaui_port
-      dependency_packet_internal_network:
-      - packet_internal_network
-      - dependency
-      local_storage_server_1c1_cmaui_2:
-      - abstract_cmaui_1c1
-      - local_storage_cmaui_1c1
-      local_storage_server_1c1_cmaui_1:
-      - abstract_cmaui_1c1
-      - local_storage_cmaui_1c1
-      dependency_cmaui_port_2:
-      - abstract_cmaui_1c1
-      - dependency_cmaui_1c1_cmaui_port
-      dependency_packet_external_network:
-      - packet_external_network
-      - dependency
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    p1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    p2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    cmaui_1c1_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    ps_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    packet_internal_network_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    pd_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: PD server names\r
+      entry_schema:\r
+        type: string\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    oam_server_1c2_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    cmaui_1c1_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    ps_server_1b_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Ps server names\r
+      entry_schema:\r
+        type: string\r
+    cmaui_1c1_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    pd_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PD server\r
+    pd_server_1b_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    packet_external_network_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availabilityzone name\r
+    ps_server_1b_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for PS server\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    ps_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Ps Image server\r
+    net:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    pd_server_1b_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: PD Image server\r
+    oam_server_1c2_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    oam_server_1c2_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_cmaui_1c1:\r
+      type: org.openecomp.resource.abstract.nodes.cmaui_1c1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_cmaui_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        port_cmaui_port_network:\r
+        - packet_internal_network\r
+        - packet_internal_network\r
+        compute_cmaui_1c1_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        vm_flavor_name:\r
+          get_input: cmaui_1c1_flavor\r
+        port_cmaui_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_cmaui_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_image_name:\r
+          get_input: cmaui_1c1_image\r
+        port_cmaui_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        compute_cmaui_1c1_name:\r
+        - get_input:\r
+          - cmaui_1c1_names\r
+          - 1\r
+        - get_input:\r
+          - cmaui_1c1_names\r
+          - 0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_cmaui_1c1ServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_cmaui_1c1_cmaui_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_internal_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_pd_server_1b:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_1b_name:\r
+        - get_input:\r
+          - pd_server_1b_names\r
+          - 0\r
+        vm_flavor_name:\r
+          get_input: pd_server_1b_flavor\r
+        vm_image_name:\r
+          get_input: pd_server_1b_image\r
+        port_pd_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        port_pd_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_pd_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - pd_server_1b_ips\r
+            - 0\r
+        port_pd_server_1b_port_network:\r
+        - get_input: net\r
+        compute_pd_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_pd_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_server_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_ps_server_1b:\r
+      type: org.openecomp.resource.abstract.nodes.ps_server_1b\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_ps_server_1b_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps_server_1b_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - ps_server_1b_ips\r
+            - 0\r
+        vm_flavor_name:\r
+          get_input: ps_server_1b_flavor\r
+        port_ps_server_1b_port_network:\r
+        - get_input: net\r
+        port_ps_server_1b_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: ps_server_1b_image\r
+        port_ps_server_1b_port_replacement_policy:\r
+        - AUTO\r
+        compute_ps_server_1b_availability_zone:\r
+        - get_input: availability_zone_0\r
+        compute_ps_server_1b_name:\r
+        - get_input:\r
+          - ps_server_1b_names\r
+          - 1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_ps_server_1bServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    packet_external_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_external_network_name\r
+    packet_internal_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_internal_network_name\r
+    abstract_oam_server_1c2_1:\r
+      type: org.openecomp.resource.abstract.nodes.oam_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_oam_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_oam_server_1c2_name:\r
+        - get_input:\r
+          - oam_server_1c2_names\r
+          - 1\r
+        port_oam_port_network:\r
+        - packet_external_network\r
+        vm_flavor_name:\r
+          get_input: oam_server_1c2_flavor\r
+        compute_oam_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_oam_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: oam_server_1c2_image\r
+        port_oam_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_oam_port_replacement_policy:\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_oam_server_1c2_oam_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_external_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+    abstract_oam_server_1c2_0:\r
+      type: org.openecomp.resource.abstract.nodes.oam_server_1c2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_oam_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_oam_server_1c2_name:\r
+        - get_input:\r
+          - oam_server_1c2_names\r
+          - 0\r
+        port_oam_port_network:\r
+        - packet_internal_network\r
+        vm_flavor_name:\r
+          get_input: oam_server_1c2_flavor\r
+        compute_oam_server_1c2_availability_zone:\r
+        - get_input: availability_zone_0\r
+        port_oam_port_fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 1\r
+        vm_image_name:\r
+          get_input: oam_server_1c2_image\r
+        port_oam_port_ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        port_oam_port_replacement_policy:\r
+        - AUTO\r
+        service_template_filter:\r
+          substitute_service_template: Nested_oam_server_1c2ServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_oam_server_1c2_oam_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_internal_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    nested1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested1.yml\r
+        description: nested1\r
+      members:\r
+      - packet_external_network\r
+      - packet_internal_network\r
+      - abstract_ps_server_1b\r
+      - abstract_oam_server_1c2_0\r
+      - abstract_oam_server_1c2_1\r
+      - abstract_pd_server_1b\r
+      - abstract_cmaui_1c1\r
+  outputs:\r
+    all_pattern_attr_1:\r
+      description: all_pattern_attr_1\r
+      value:\r
+        get_attribute:\r
+        - abstract_oam_server_1c2_1\r
+        - oam_server_1c2_accessIPv4\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+    capabilities:\r
+      disk.capacity_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.capacity_pd_server_1b\r
+      disk.device.write.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.bytes.rate_oam_server_1c2\r
+      disk.read.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes_cmaui_1c1\r
+      disk.device.write.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.bytes.rate_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.bytes.rate_ps_server_1b\r
+      disk.read.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes_cmaui_1c1\r
+      disk.usage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.usage_pd_server_1b\r
+      disk.iops_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.iops_oam_server_1c2\r
+      disk.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.usage_oam_server_1c2\r
+      disk.read.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.requests_cmaui_1c1\r
+      feature_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1\r
+      disk.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.usage_oam_server_1c2\r
+      network.incoming.bytes_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.bytes_pd_server_1b_pd_server_1b_port\r
+      feature_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1\r
+      disk.read.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.requests_cmaui_1c1\r
+      disk.device.iops_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.iops_ps_server_1b\r
+      network.outgoing.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes_cmaui_1c1_cmaui_port\r
+      disk.iops_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.iops_oam_server_1c2\r
+      network.outgoing.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes_cmaui_1c1_cmaui_port\r
+      network.outgoing.packets.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.packets.rate_oam_server_1c2_oam_port\r
+      network.outgoing.packets.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.packets.rate_oam_server_1c2_oam_port\r
+      disk.device.iops_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.iops_pd_server_1b\r
+      network.incoming.packets_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.packets_pd_server_1b_pd_server_1b_port\r
+      attachment_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - attachment_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.requests.rate_oam_server_1c2\r
+      forwarder_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - forwarder_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.requests.rate_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.bytes.rate_pd_server_1b\r
+      disk.read.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.bytes.rate_oam_server_1c2\r
+      disk.read.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.bytes.rate_oam_server_1c2\r
+      scalable_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - scalable_oam_server_1c2\r
+      disk.latency_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.latency_pd_server_1b\r
+      scalable_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - scalable_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.requests.rate_pd_server_1b\r
+      disk.device.write.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests_cmaui_1c1\r
+      disk.device.write.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests_cmaui_1c1\r
+      disk.device.read.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes_cmaui_1c1\r
+      disk.device.read.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes_cmaui_1c1\r
+      disk.device.read.requests.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.requests.rate_ps_server_1b\r
+      disk.device.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.usage_oam_server_1c2\r
+      disk.device.capacity_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.capacity_oam_server_1c2\r
+      disk.device.capacity_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.capacity_oam_server_1c2\r
+      binding_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - binding_ps_server_1b\r
+      binding_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - binding_pd_server_1b\r
+      disk.device.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.usage_oam_server_1c2\r
+      memory.usage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - memory.usage_pd_server_1b\r
+      network.outpoing.packets_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outpoing.packets_oam_server_1c2_oam_port\r
+      network.outpoing.packets_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outpoing.packets_oam_server_1c2_oam_port\r
+      binding_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1_cmaui_port\r
+      binding_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1_cmaui_port\r
+      memory.usage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - memory.usage_ps_server_1b\r
+      cpu_util_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - cpu_util_pd_server_1b\r
+      cpu_util_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu_util_oam_server_1c2\r
+      cpu_util_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu_util_oam_server_1c2\r
+      memory_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory_oam_server_1c2\r
+      memory_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory_oam_server_1c2\r
+      disk.write.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.bytes_oam_server_1c2\r
+      disk.write.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.bytes_oam_server_1c2\r
+      memory.resident_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory.resident_oam_server_1c2\r
+      memory.resident_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory.resident_oam_server_1c2\r
+      cpu_util_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - cpu_util_ps_server_1b\r
+      network.incoming.bytes_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes_cmaui_1c1_cmaui_port\r
+      network.incoming.bytes_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes_cmaui_1c1_cmaui_port\r
+      os_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - os_oam_server_1c2\r
+      disk.device.iops_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.iops_cmaui_1c1\r
+      instance_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - instance_pd_server_1b\r
+      disk.device.iops_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.iops_cmaui_1c1\r
+      os_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - os_oam_server_1c2\r
+      disk.device.write.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.bytes_pd_server_1b\r
+      disk.device.allocation_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.allocation_cmaui_1c1\r
+      disk.device.allocation_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.allocation_cmaui_1c1\r
+      feature_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - feature_oam_server_1c2\r
+      disk.device.write.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.bytes_ps_server_1b\r
+      network.incoming.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets.rate_cmaui_1c1_cmaui_port\r
+      vcpus_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - vcpus_cmaui_1c1\r
+      network.incoming.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets.rate_cmaui_1c1_cmaui_port\r
+      feature_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1_cmaui_port\r
+      network.incoming.bytes.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.bytes.rate_pd_server_1b_pd_server_1b_port\r
+      network.outgoing.bytes_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.bytes_oam_server_1c2_oam_port\r
+      feature_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - feature_cmaui_1c1_cmaui_port\r
+      instance_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - instance_ps_server_1b\r
+      feature_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - feature_oam_server_1c2\r
+      network.outgoing.bytes_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.bytes_oam_server_1c2_oam_port\r
+      disk.device.capacity_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.capacity_cmaui_1c1\r
+      instance_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - instance_cmaui_1c1\r
+      cpu.delta_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - cpu.delta_ps_server_1b\r
+      instance_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - instance_cmaui_1c1\r
+      disk.device.read.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.requests.rate_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.requests.rate_oam_server_1c2\r
+      attachment_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - attachment_oam_server_1c2_oam_port\r
+      disk.device.write.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.bytes.rate_pd_server_1b\r
+      disk.capacity_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.capacity_oam_server_1c2\r
+      disk.capacity_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.capacity_oam_server_1c2\r
+      cpu.delta_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - cpu.delta_pd_server_1b\r
+      attachment_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - attachment_oam_server_1c2_oam_port\r
+      disk.device.write.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.requests_pd_server_1b\r
+      disk.write.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.bytes.rate_oam_server_1c2\r
+      disk.write.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.bytes.rate_oam_server_1c2\r
+      endpoint_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - endpoint_cmaui_1c1\r
+      network.outgoing.packets.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outgoing.packets.rate_ps_server_1b_ps_server_1b_port\r
+      endpoint_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - endpoint_cmaui_1c1\r
+      disk.device.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.usage_cmaui_1c1\r
+      disk.device.capacity_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.capacity_cmaui_1c1\r
+      disk.device.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.usage_cmaui_1c1\r
+      network.incoming.bytes_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.bytes_ps_server_1b_ps_server_1b_port\r
+      attachment_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - attachment_pd_server_1b_pd_server_1b_port\r
+      vcpus_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - vcpus_cmaui_1c1\r
+      binding_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - binding_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.bytes.rate_ps_server_1b\r
+      forwarder_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - forwarder_cmaui_1c1_cmaui_port\r
+      forwarder_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - forwarder_cmaui_1c1_cmaui_port\r
+      disk.device.write.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.requests_ps_server_1b\r
+      disk.device.latency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.latency_oam_server_1c2\r
+      disk.device.latency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.latency_oam_server_1c2\r
+      feature_packet_external_network:\r
+      - packet_external_network\r
+      - feature\r
+      disk.write.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests.rate_cmaui_1c1\r
+      disk.write.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests.rate_cmaui_1c1\r
+      disk.device.read.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.requests_pd_server_1b\r
+      disk.read.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.read.requests_pd_server_1b\r
+      cpu_util_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu_util_cmaui_1c1\r
+      disk.allocation_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.allocation_oam_server_1c2\r
+      disk.allocation_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.allocation_oam_server_1c2\r
+      cpu_util_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu_util_cmaui_1c1\r
+      disk.device.read.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.requests_ps_server_1b\r
+      binding_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - binding_pd_server_1b_pd_server_1b_port\r
+      disk.read.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.bytes_oam_server_1c2\r
+      disk.read.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.bytes_oam_server_1c2\r
+      cpu_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - cpu_pd_server_1b\r
+      binding_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - binding_oam_server_1c2_oam_port\r
+      disk.write.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes.rate_cmaui_1c1\r
+      disk.write.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes.rate_cmaui_1c1\r
+      disk.allocation_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.allocation_pd_server_1b\r
+      binding_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - binding_oam_server_1c2_oam_port\r
+      disk.read.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes.rate_cmaui_1c1\r
+      disk.read.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.read.bytes.rate_cmaui_1c1\r
+      host_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - host_cmaui_1c1\r
+      host_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - host_cmaui_1c1\r
+      cpu_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - cpu_ps_server_1b\r
+      network.outpoing.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outpoing.packets_cmaui_1c1_cmaui_port\r
+      disk.allocation_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.allocation_ps_server_1b\r
+      network.outpoing.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outpoing.packets_cmaui_1c1_cmaui_port\r
+      disk.latency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.latency_oam_server_1c2\r
+      disk.latency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.latency_oam_server_1c2\r
+      disk.read.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.read.requests_ps_server_1b\r
+      disk.capacity_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.capacity_ps_server_1b\r
+      memory.usage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - memory.usage_oam_server_1c2\r
+      network.outpoing.packets_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outpoing.packets_ps_server_1b_ps_server_1b_port\r
+      memory.usage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - memory.usage_oam_server_1c2\r
+      disk.read.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.read.requests_oam_server_1c2\r
+      attachment_packet_external_network:\r
+      - packet_external_network\r
+      - attachment\r
+      disk.read.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.read.requests_oam_server_1c2\r
+      disk.usage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.usage_ps_server_1b\r
+      disk.root.size_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.root.size_oam_server_1c2\r
+      memory.resident_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory.resident_cmaui_1c1\r
+      disk.root.size_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.root.size_oam_server_1c2\r
+      memory.resident_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory.resident_cmaui_1c1\r
+      network.incoming.bytes.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.bytes.rate_ps_server_1b_ps_server_1b_port\r
+      network.incoming.bytes.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.bytes.rate_oam_server_1c2_oam_port\r
+      os_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - os_cmaui_1c1\r
+      os_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - os_cmaui_1c1\r
+      instance_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - instance_oam_server_1c2\r
+      instance_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - instance_oam_server_1c2\r
+      network.incoming.bytes.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.bytes.rate_oam_server_1c2_oam_port\r
+      vcpus_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - vcpus_pd_server_1b\r
+      memory.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory.usage_cmaui_1c1\r
+      disk.write.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.bytes.rate_ps_server_1b\r
+      memory.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory.usage_cmaui_1c1\r
+      binding_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1\r
+      memory_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - memory_cmaui_1c1\r
+      binding_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - binding_cmaui_1c1\r
+      feature_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - feature_ps_server_1b_ps_server_1b_port\r
+      disk.device.iops_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.iops_oam_server_1c2\r
+      vcpus_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - vcpus_ps_server_1b\r
+      disk.device.iops_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.iops_oam_server_1c2\r
+      disk.write.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.bytes.rate_pd_server_1b\r
+      forwarder_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - forwarder_oam_server_1c2_oam_port\r
+      forwarder_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - forwarder_oam_server_1c2_oam_port\r
+      binding_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - binding_oam_server_1c2\r
+      binding_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - binding_oam_server_1c2\r
+      os_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - os_pd_server_1b\r
+      attachment_packet_internal_network:\r
+      - packet_internal_network\r
+      - attachment\r
+      network.outgoing.packets.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.packets.rate_pd_server_1b_pd_server_1b_port\r
+      memory_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - memory_cmaui_1c1\r
+      disk.device.latency_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.latency_pd_server_1b\r
+      disk.write.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.requests_oam_server_1c2\r
+      disk.device.usage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.usage_pd_server_1b\r
+      disk.write.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.requests_oam_server_1c2\r
+      vcpus_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - vcpus_oam_server_1c2\r
+      vcpus_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - vcpus_oam_server_1c2\r
+      os_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - os_ps_server_1b\r
+      disk.device.latency_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.latency_ps_server_1b\r
+      disk.ephemeral.size_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.ephemeral.size_cmaui_1c1\r
+      disk.ephemeral.size_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.ephemeral.size_cmaui_1c1\r
+      disk.root.size_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.root.size_cmaui_1c1\r
+      disk.device.usage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.usage_ps_server_1b\r
+      disk.root.size_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.root.size_cmaui_1c1\r
+      disk.read.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.read.bytes_ps_server_1b\r
+      network.incoming.packets_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets_cmaui_1c1_cmaui_port\r
+      disk.device.write.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes.rate_cmaui_1c1\r
+      disk.ephemeral.size_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.ephemeral.size_pd_server_1b\r
+      disk.device.write.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.requests_oam_server_1c2\r
+      disk.allocation_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.allocation_cmaui_1c1\r
+      memory_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - memory_ps_server_1b\r
+      network.incoming.packets_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.packets_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outgoing.bytes.rate_ps_server_1b_ps_server_1b_port\r
+      network.incoming.packets.rate_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.packets.rate_ps_server_1b_ps_server_1b_port\r
+      disk.device.write.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests.rate_cmaui_1c1\r
+      disk.device.write.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes_cmaui_1c1\r
+      disk.device.write.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.requests.rate_cmaui_1c1\r
+      feature_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - feature_ps_server_1b\r
+      disk.write.requests.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.requests.rate_ps_server_1b\r
+      disk.device.write.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.requests_oam_server_1c2\r
+      disk.device.write.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes.rate_cmaui_1c1\r
+      disk.device.write.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.write.bytes_cmaui_1c1\r
+      host_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - host_pd_server_1b\r
+      disk.device.read.requests_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.requests_oam_server_1c2\r
+      disk.ephemeral.size_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.ephemeral.size_ps_server_1b\r
+      disk.read.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.read.bytes_pd_server_1b\r
+      host_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - host_oam_server_1c2\r
+      disk.device.read.requests_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.requests_oam_server_1c2\r
+      memory_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - memory_pd_server_1b\r
+      host_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - host_oam_server_1c2\r
+      network.incoming.packets.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.packets.rate_oam_server_1c2_oam_port\r
+      disk.write.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.bytes_ps_server_1b\r
+      network.incoming.packets.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.packets.rate_oam_server_1c2_oam_port\r
+      end_point_packet_external_network:\r
+      - packet_external_network\r
+      - end_point\r
+      network.outpoing.packets_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outpoing.packets_pd_server_1b_pd_server_1b_port\r
+      feature_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - feature_pd_server_1b\r
+      disk.device.read.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests_cmaui_1c1\r
+      disk.allocation_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.allocation_cmaui_1c1\r
+      disk.device.read.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests_cmaui_1c1\r
+      disk.device.allocation_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.allocation_pd_server_1b\r
+      disk.root.size_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.root.size_ps_server_1b\r
+      disk.device.allocation_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.allocation_oam_server_1c2\r
+      disk.device.allocation_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.allocation_oam_server_1c2\r
+      network.outgoing.bytes_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.bytes_pd_server_1b_pd_server_1b_port\r
+      disk.write.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.bytes_pd_server_1b\r
+      disk.write.requests_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests_cmaui_1c1\r
+      disk.write.requests_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.requests_cmaui_1c1\r
+      disk.device.capacity_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.capacity_pd_server_1b\r
+      network.outgoing.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port\r
+      disk.root.size_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.root.size_pd_server_1b\r
+      cpu_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu_cmaui_1c1\r
+      network.outgoing.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.bytes.rate_cmaui_1c1_cmaui_port\r
+      cpu_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu_cmaui_1c1\r
+      cpu_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu_oam_server_1c2\r
+      disk.device.capacity_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.capacity_ps_server_1b\r
+      disk.write.requests.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.requests.rate_pd_server_1b\r
+      cpu_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu_oam_server_1c2\r
+      link_packet_external_network:\r
+      - packet_external_network\r
+      - link\r
+      disk.device.read.bytes.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes.rate_cmaui_1c1\r
+      disk.device.read.bytes.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.bytes.rate_cmaui_1c1\r
+      host_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - host_ps_server_1b\r
+      disk.write.requests.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.write.requests.rate_oam_server_1c2\r
+      cpu.delta_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - cpu.delta_oam_server_1c2\r
+      disk.iops_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.iops_pd_server_1b\r
+      disk.write.requests.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.write.requests.rate_oam_server_1c2\r
+      disk.usage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.usage_cmaui_1c1\r
+      disk.usage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.usage_cmaui_1c1\r
+      disk.device.allocation_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.allocation_ps_server_1b\r
+      end_point_packet_internal_network:\r
+      - packet_internal_network\r
+      - end_point\r
+      network.incoming.bytes_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.bytes_oam_server_1c2_oam_port\r
+      feature_packet_internal_network:\r
+      - packet_internal_network\r
+      - feature\r
+      network.incoming.bytes_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.bytes_oam_server_1c2_oam_port\r
+      forwarder_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - forwarder_pd_server_1b_pd_server_1b_port\r
+      disk.device.write.requests.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.write.requests.rate_ps_server_1b\r
+      attachment_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - attachment_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes.rate_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.outgoing.bytes.rate_oam_server_1c2_oam_port\r
+      network.outgoing.bytes.rate_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.outgoing.bytes.rate_oam_server_1c2_oam_port\r
+      disk.iops_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.iops_ps_server_1b\r
+      disk.capacity_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.capacity_cmaui_1c1\r
+      network.outgoing.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port\r
+      network.outgoing.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.outgoing.packets.rate_cmaui_1c1_cmaui_port\r
+      attachment_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - attachment_cmaui_1c1_cmaui_port\r
+      disk.capacity_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.capacity_cmaui_1c1\r
+      disk.ephemeral.size_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.ephemeral.size_oam_server_1c2\r
+      disk.read.bytes.rate_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.read.bytes.rate_ps_server_1b\r
+      disk.ephemeral.size_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.ephemeral.size_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests.rate_cmaui_1c1\r
+      disk.device.read.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.bytes_oam_server_1c2\r
+      disk.device.read.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.bytes_oam_server_1c2\r
+      disk.device.read.requests.rate_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.read.requests.rate_cmaui_1c1\r
+      network.incoming.packets_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.incoming.packets_ps_server_1b_ps_server_1b_port\r
+      disk.write.requests_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.write.requests_ps_server_1b\r
+      feature_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - feature_pd_server_1b_pd_server_1b_port\r
+      disk.latency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.latency_cmaui_1c1\r
+      scalable_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - scalable_ps_server_1b\r
+      disk.latency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.latency_cmaui_1c1\r
+      cpu.delta_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - cpu.delta_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.read.bytes.rate_oam_server_1c2\r
+      disk.device.read.bytes.rate_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.read.bytes.rate_oam_server_1c2\r
+      scalable_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - scalable_pd_server_1b\r
+      disk.write.requests_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.write.requests_pd_server_1b\r
+      disk.latency_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.latency_ps_server_1b\r
+      disk.write.bytes_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes_cmaui_1c1\r
+      network.outgoing.bytes.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.outgoing.bytes.rate_pd_server_1b_pd_server_1b_port\r
+      disk.write.bytes_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.write.bytes_cmaui_1c1\r
+      feature_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - feature_oam_server_1c2_oam_port\r
+      feature_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - feature_oam_server_1c2_oam_port\r
+      network.incoming.packets.rate_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - network.incoming.packets.rate_pd_server_1b_pd_server_1b_port\r
+      disk.device.latency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.latency_cmaui_1c1\r
+      disk.read.bytes.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.read.bytes.rate_pd_server_1b\r
+      scalable_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - scalable_cmaui_1c1\r
+      link_packet_internal_network:\r
+      - packet_internal_network\r
+      - link\r
+      disk.device.latency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.device.latency_cmaui_1c1\r
+      scalable_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - scalable_cmaui_1c1\r
+      cpu.delta_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - cpu.delta_cmaui_1c1\r
+      endpoint_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - endpoint_pd_server_1b\r
+      cpu.delta_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - cpu.delta_cmaui_1c1\r
+      endpoint_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - endpoint_ps_server_1b\r
+      network.incoming.packets_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - network.incoming.packets_oam_server_1c2_oam_port\r
+      network.incoming.packets_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - network.incoming.packets_oam_server_1c2_oam_port\r
+      network.incoming.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port\r
+      network.outgoing.bytes_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - network.outgoing.bytes_ps_server_1b_ps_server_1b_port\r
+      network.incoming.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - network.incoming.bytes.rate_cmaui_1c1_cmaui_port\r
+      disk.device.read.bytes_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - disk.device.read.bytes_ps_server_1b\r
+      disk.iops_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - disk.iops_cmaui_1c1\r
+      disk.iops_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - disk.iops_cmaui_1c1\r
+      disk.device.write.requests.rate_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.write.requests.rate_pd_server_1b\r
+      memory.resident_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - memory.resident_pd_server_1b\r
+      disk.device.write.bytes_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - disk.device.write.bytes_oam_server_1c2\r
+      disk.device.write.bytes_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - disk.device.write.bytes_oam_server_1c2\r
+      memory.resident_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - memory.resident_ps_server_1b\r
+      disk.device.read.bytes_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - disk.device.read.bytes_pd_server_1b\r
+      endpoint_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - endpoint_oam_server_1c2\r
+      endpoint_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - endpoint_oam_server_1c2\r
+    requirements:\r
+      dependency_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - dependency_pd_server_1b\r
+      link_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - link_pd_server_1b_pd_server_1b_port\r
+      local_storage_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - local_storage_ps_server_1b\r
+      dependency_oam_port_2:\r
+      - abstract_oam_server_1c2_1\r
+      - dependency_oam_server_1c2_oam_port\r
+      dependency_oam_port_1:\r
+      - abstract_oam_server_1c2_0\r
+      - dependency_oam_server_1c2_oam_port\r
+      dependency_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1\r
+      dependency_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1\r
+      link_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - link_ps_server_1b_ps_server_1b_port\r
+      local_storage_server_1b_pd:\r
+      - abstract_pd_server_1b\r
+      - local_storage_pd_server_1b\r
+      dependency_ps_server_1b_port:\r
+      - abstract_ps_server_1b\r
+      - dependency_ps_server_1b_ps_server_1b_port\r
+      dependency_server_1b_ps:\r
+      - abstract_ps_server_1b\r
+      - dependency_ps_server_1b\r
+      dependency_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - dependency_oam_server_1c2\r
+      dependency_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - dependency_oam_server_1c2\r
+      local_storage_server_1c2_oam_2:\r
+      - abstract_oam_server_1c2_1\r
+      - local_storage_oam_server_1c2\r
+      local_storage_server_1c2_oam_1:\r
+      - abstract_oam_server_1c2_0\r
+      - local_storage_oam_server_1c2\r
+      dependency_pd_server_1b_port:\r
+      - abstract_pd_server_1b\r
+      - dependency_pd_server_1b_pd_server_1b_port\r
+      dependency_cmaui_port_1:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1_cmaui_port\r
+      dependency_packet_internal_network:\r
+      - packet_internal_network\r
+      - dependency\r
+      local_storage_server_1c1_cmaui_2:\r
+      - abstract_cmaui_1c1\r
+      - local_storage_cmaui_1c1\r
+      local_storage_server_1c1_cmaui_1:\r
+      - abstract_cmaui_1c1\r
+      - local_storage_cmaui_1c1\r
+      dependency_cmaui_port_2:\r
+      - abstract_cmaui_1c1\r
+      - dependency_cmaui_1c1_cmaui_port\r
+      dependency_packet_external_network:\r
+      - packet_external_network\r
+      - dependency\r
\ No newline at end of file
index 7c212aa..db82f7b 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: nested1
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    cmaui_names:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    p1:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    p2:
-      hidden: false
-      immutable: false
-      type: string
-      description: UID of OAM network
-    cmaui_image:
-      hidden: false
-      immutable: false
-      type: string
-      description: Image for CMAUI server
-    cmaui_flavor:
-      hidden: false
-      immutable: false
-      type: string
-      description: Flavor for CMAUI server
-    security_group_name:
-      hidden: false
-      immutable: false
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      type: string
-      description: availabilityzone name
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      type: string
-    net:
-      hidden: false
-      immutable: false
-      type: string
-  node_templates:
-    abstract_cmaui:
-      type: org.openecomp.resource.abstract.nodes.cmaui
-      directives:
-      - substitutable
-      properties:
-        port_cmaui_port_fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        port_cmaui_port_network:
-        - get_input: net
-        vm_flavor_name:
-          get_input: cmaui_flavor
-        compute_cmaui_name:
-        - get_input:
-          - cmaui_names
-          - 1
-        - get_input:
-          - cmaui_names
-          - 0
-        port_cmaui_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        compute_cmaui_availability_zone:
-        - get_input: availability_zone_0
-        - get_input: availability_zone_0
-        port_cmaui_port_replacement_policy:
-        - AUTO
-        vm_image_name:
-          get_input: cmaui_image
-        port_cmaui_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_cmauiServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    nested1_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/nested1.yml
-        description: nested1
-      members:
-      - abstract_cmaui
-  substitution_mappings:
-    node_type: org.openecomp.resource.abstract.nodes.heat.nested1
-    capabilities:
-      disk.device.usage_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.usage_cmaui
-      disk.device.usage_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.usage_cmaui
-      disk.device.latency_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.latency_cmaui
-      disk.device.latency_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.latency_cmaui
-      disk.root.size_server_cmaui_2:
-      - abstract_cmaui
-      - disk.root.size_cmaui
-      disk.device.write.requests.rate_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.write.requests.rate_cmaui
-      disk.root.size_server_cmaui_1:
-      - abstract_cmaui
-      - disk.root.size_cmaui
-      disk.device.write.requests.rate_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.write.requests.rate_cmaui
-      disk.read.requests_server_cmaui_2:
-      - abstract_cmaui
-      - disk.read.requests_cmaui
-      network.outgoing.bytes_cmaui_port_2:
-      - abstract_cmaui
-      - network.outgoing.bytes_cmaui_cmaui_port
-      disk.read.requests_server_cmaui_1:
-      - abstract_cmaui
-      - disk.read.requests_cmaui
-      network.outgoing.bytes_cmaui_port_1:
-      - abstract_cmaui
-      - network.outgoing.bytes_cmaui_cmaui_port
-      disk.device.iops_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.iops_cmaui
-      disk.device.iops_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.iops_cmaui
-      disk.device.capacity_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.capacity_cmaui
-      disk.device.read.bytes.rate_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.read.bytes.rate_cmaui
-      disk.device.read.bytes.rate_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.read.bytes.rate_cmaui
-      disk.read.bytes_server_cmaui_2:
-      - abstract_cmaui
-      - disk.read.bytes_cmaui
-      disk.read.bytes_server_cmaui_1:
-      - abstract_cmaui
-      - disk.read.bytes_cmaui
-      disk.device.read.bytes_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.read.bytes_cmaui
-      disk.device.read.bytes_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.read.bytes_cmaui
-      disk.write.requests.rate_server_cmaui_1:
-      - abstract_cmaui
-      - disk.write.requests.rate_cmaui
-      disk.write.requests.rate_server_cmaui_2:
-      - abstract_cmaui
-      - disk.write.requests.rate_cmaui
-      memory_server_cmaui_2:
-      - abstract_cmaui
-      - memory_cmaui
-      cpu_server_cmaui_2:
-      - abstract_cmaui
-      - cpu_cmaui
-      cpu_server_cmaui_1:
-      - abstract_cmaui
-      - cpu_cmaui
-      network.incoming.packets_cmaui_port_2:
-      - abstract_cmaui
-      - network.incoming.packets_cmaui_cmaui_port
-      network.incoming.packets_cmaui_port_1:
-      - abstract_cmaui
-      - network.incoming.packets_cmaui_cmaui_port
-      disk.ephemeral.size_server_cmaui_1:
-      - abstract_cmaui
-      - disk.ephemeral.size_cmaui
-      disk.ephemeral.size_server_cmaui_2:
-      - abstract_cmaui
-      - disk.ephemeral.size_cmaui
-      disk.capacity_server_cmaui_1:
-      - abstract_cmaui
-      - disk.capacity_cmaui
-      disk.capacity_server_cmaui_2:
-      - abstract_cmaui
-      - disk.capacity_cmaui
-      binding_cmaui_port_1:
-      - abstract_cmaui
-      - binding_cmaui_cmaui_port
-      binding_cmaui_port_2:
-      - abstract_cmaui
-      - binding_cmaui_cmaui_port
-      disk.iops_server_cmaui_2:
-      - abstract_cmaui
-      - disk.iops_cmaui
-      disk.iops_server_cmaui_1:
-      - abstract_cmaui
-      - disk.iops_cmaui
-      disk.device.write.requests_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.write.requests_cmaui
-      disk.device.write.requests_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.write.requests_cmaui
-      network.outgoing.bytes.rate_cmaui_port_2:
-      - abstract_cmaui
-      - network.outgoing.bytes.rate_cmaui_cmaui_port
-      disk.device.write.bytes.rate_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.write.bytes.rate_cmaui
-      cpu_util_server_cmaui_1:
-      - abstract_cmaui
-      - cpu_util_cmaui
-      network.outgoing.bytes.rate_cmaui_port_1:
-      - abstract_cmaui
-      - network.outgoing.bytes.rate_cmaui_cmaui_port
-      network.incoming.bytes_cmaui_port_2:
-      - abstract_cmaui
-      - network.incoming.bytes_cmaui_cmaui_port
-      cpu_util_server_cmaui_2:
-      - abstract_cmaui
-      - cpu_util_cmaui
-      network.incoming.bytes_cmaui_port_1:
-      - abstract_cmaui
-      - network.incoming.bytes_cmaui_cmaui_port
-      disk.device.write.bytes.rate_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.write.bytes.rate_cmaui
-      disk.write.bytes.rate_server_cmaui_2:
-      - abstract_cmaui
-      - disk.write.bytes.rate_cmaui
-      disk.device.write.bytes_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.write.bytes_cmaui
-      disk.write.bytes.rate_server_cmaui_1:
-      - abstract_cmaui
-      - disk.write.bytes.rate_cmaui
-      disk.device.write.bytes_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.write.bytes_cmaui
-      network.incoming.packets.rate_cmaui_port_1:
-      - abstract_cmaui
-      - network.incoming.packets.rate_cmaui_cmaui_port
-      network.incoming.packets.rate_cmaui_port_2:
-      - abstract_cmaui
-      - network.incoming.packets.rate_cmaui_cmaui_port
-      feature_cmaui_port_1:
-      - abstract_cmaui
-      - feature_cmaui_cmaui_port
-      feature_cmaui_port_2:
-      - abstract_cmaui
-      - feature_cmaui_cmaui_port
-      disk.write.bytes_server_cmaui_1:
-      - abstract_cmaui
-      - disk.write.bytes_cmaui
-      disk.write.bytes_server_cmaui_2:
-      - abstract_cmaui
-      - disk.write.bytes_cmaui
-      feature_server_cmaui_1:
-      - abstract_cmaui
-      - feature_cmaui
-      disk.allocation_server_cmaui_1:
-      - abstract_cmaui
-      - disk.allocation_cmaui
-      feature_server_cmaui_2:
-      - abstract_cmaui
-      - feature_cmaui
-      disk.allocation_server_cmaui_2:
-      - abstract_cmaui
-      - disk.allocation_cmaui
-      binding_server_cmaui_1:
-      - abstract_cmaui
-      - binding_cmaui
-      binding_server_cmaui_2:
-      - abstract_cmaui
-      - binding_cmaui
-      vcpus_server_cmaui_2:
-      - abstract_cmaui
-      - vcpus_cmaui
-      attachment_cmaui_port_2:
-      - abstract_cmaui
-      - attachment_cmaui_cmaui_port
-      scalable_server_cmaui_2:
-      - abstract_cmaui
-      - scalable_cmaui
-      scalable_server_cmaui_1:
-      - abstract_cmaui
-      - scalable_cmaui
-      network.outgoing.packets.rate_cmaui_port_1:
-      - abstract_cmaui
-      - network.outgoing.packets.rate_cmaui_cmaui_port
-      network.outgoing.packets.rate_cmaui_port_2:
-      - abstract_cmaui
-      - network.outgoing.packets.rate_cmaui_cmaui_port
-      attachment_cmaui_port_1:
-      - abstract_cmaui
-      - attachment_cmaui_cmaui_port
-      disk.write.requests_server_cmaui_2:
-      - abstract_cmaui
-      - disk.write.requests_cmaui
-      disk.write.requests_server_cmaui_1:
-      - abstract_cmaui
-      - disk.write.requests_cmaui
-      disk.usage_server_cmaui_1:
-      - abstract_cmaui
-      - disk.usage_cmaui
-      disk.usage_server_cmaui_2:
-      - abstract_cmaui
-      - disk.usage_cmaui
-      endpoint_server_cmaui_1:
-      - abstract_cmaui
-      - endpoint_cmaui
-      endpoint_server_cmaui_2:
-      - abstract_cmaui
-      - endpoint_cmaui
-      os_server_cmaui_2:
-      - abstract_cmaui
-      - os_cmaui
-      os_server_cmaui_1:
-      - abstract_cmaui
-      - os_cmaui
-      forwarder_cmaui_port_2:
-      - abstract_cmaui
-      - forwarder_cmaui_cmaui_port
-      forwarder_cmaui_port_1:
-      - abstract_cmaui
-      - forwarder_cmaui_cmaui_port
-      disk.device.allocation_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.allocation_cmaui
-      disk.device.allocation_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.allocation_cmaui
-      memory_server_cmaui_1:
-      - abstract_cmaui
-      - memory_cmaui
-      host_server_cmaui_2:
-      - abstract_cmaui
-      - host_cmaui
-      host_server_cmaui_1:
-      - abstract_cmaui
-      - host_cmaui
-      instance_server_cmaui_2:
-      - abstract_cmaui
-      - instance_cmaui
-      disk.device.capacity_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.capacity_cmaui
-      instance_server_cmaui_1:
-      - abstract_cmaui
-      - instance_cmaui
-      disk.device.read.requests.rate_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.read.requests.rate_cmaui
-      network.incoming.bytes.rate_cmaui_port_1:
-      - abstract_cmaui
-      - network.incoming.bytes.rate_cmaui_cmaui_port
-      network.incoming.bytes.rate_cmaui_port_2:
-      - abstract_cmaui
-      - network.incoming.bytes.rate_cmaui_cmaui_port
-      vcpus_server_cmaui_1:
-      - abstract_cmaui
-      - vcpus_cmaui
-      disk.device.read.requests_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.read.requests_cmaui
-      disk.read.bytes.rate_server_cmaui_1:
-      - abstract_cmaui
-      - disk.read.bytes.rate_cmaui
-      network.outpoing.packets_cmaui_port_1:
-      - abstract_cmaui
-      - network.outpoing.packets_cmaui_cmaui_port
-      disk.read.bytes.rate_server_cmaui_2:
-      - abstract_cmaui
-      - disk.read.bytes.rate_cmaui
-      network.outpoing.packets_cmaui_port_2:
-      - abstract_cmaui
-      - network.outpoing.packets_cmaui_cmaui_port
-      disk.device.read.requests_server_cmaui_1:
-      - abstract_cmaui
-      - disk.device.read.requests_cmaui
-      cpu.delta_server_cmaui_1:
-      - abstract_cmaui
-      - cpu.delta_cmaui
-      cpu.delta_server_cmaui_2:
-      - abstract_cmaui
-      - cpu.delta_cmaui
-      disk.device.read.requests.rate_server_cmaui_2:
-      - abstract_cmaui
-      - disk.device.read.requests.rate_cmaui
-      memory.resident_server_cmaui_2:
-      - abstract_cmaui
-      - memory.resident_cmaui
-      memory.resident_server_cmaui_1:
-      - abstract_cmaui
-      - memory.resident_cmaui
-      disk.latency_server_cmaui_2:
-      - abstract_cmaui
-      - disk.latency_cmaui
-      disk.latency_server_cmaui_1:
-      - abstract_cmaui
-      - disk.latency_cmaui
-      memory.usage_server_cmaui_1:
-      - abstract_cmaui
-      - memory.usage_cmaui
-      memory.usage_server_cmaui_2:
-      - abstract_cmaui
-      - memory.usage_cmaui
-    requirements:
-      dependency_cmaui_port_1:
-      - abstract_cmaui
-      - dependency_cmaui_cmaui_port
-      local_storage_server_cmaui_2:
-      - abstract_cmaui
-      - local_storage_cmaui
-      link_cmaui_port_2:
-      - abstract_cmaui
-      - link_cmaui_cmaui_port
-      dependency_server_cmaui_2:
-      - abstract_cmaui
-      - dependency_cmaui
-      link_cmaui_port_1:
-      - abstract_cmaui
-      - link_cmaui_cmaui_port
-      dependency_server_cmaui_1:
-      - abstract_cmaui
-      - dependency_cmaui
-      dependency_cmaui_port_2:
-      - abstract_cmaui
-      - dependency_cmaui_cmaui_port
-      local_storage_server_cmaui_1:
-      - abstract_cmaui
-      - local_storage_cmaui
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    cmaui_names:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    p1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    p2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: UID of OAM network\r
+    cmaui_image:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Image for CMAUI server\r
+    cmaui_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availabilityzone name\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    net:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+  node_templates:\r
+    abstract_cmaui:\r
+      type: org.openecomp.resource.abstract.nodes.cmaui\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        port_cmaui_port_fixed_ips:\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        - - ip_address:\r
+              get_input:\r
+              - cmaui_oam_ips\r
+              - 0\r
+        port_cmaui_port_network:\r
+        - get_input: net\r
+        - get_input: net\r
+        vm_flavor_name:\r
+          get_input: cmaui_flavor\r
+        compute_cmaui_name:\r
+        - get_input:\r
+          - cmaui_names\r
+          - 1\r
+        - get_input:\r
+          - cmaui_names\r
+          - 0\r
+        port_cmaui_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        compute_cmaui_availability_zone:\r
+        - get_input: availability_zone_0\r
+        - get_input: availability_zone_0\r
+        port_cmaui_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_image_name:\r
+          get_input: cmaui_image\r
+        port_cmaui_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: true\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_cmauiServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    nested1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested1.yml\r
+        description: nested1\r
+      members:\r
+      - abstract_cmaui\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested1\r
+    capabilities:\r
+      disk.device.usage_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.usage_cmaui\r
+      disk.device.usage_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.usage_cmaui\r
+      disk.device.latency_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.latency_cmaui\r
+      disk.device.latency_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.latency_cmaui\r
+      disk.root.size_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.root.size_cmaui\r
+      disk.device.write.requests.rate_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.write.requests.rate_cmaui\r
+      disk.root.size_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.root.size_cmaui\r
+      disk.device.write.requests.rate_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.write.requests.rate_cmaui\r
+      disk.read.requests_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.read.requests_cmaui\r
+      network.outgoing.bytes_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.outgoing.bytes_cmaui_cmaui_port\r
+      disk.read.requests_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.read.requests_cmaui\r
+      network.outgoing.bytes_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.outgoing.bytes_cmaui_cmaui_port\r
+      disk.device.iops_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.iops_cmaui\r
+      disk.device.iops_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.iops_cmaui\r
+      disk.device.capacity_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.capacity_cmaui\r
+      disk.device.read.bytes.rate_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.read.bytes.rate_cmaui\r
+      disk.device.read.bytes.rate_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.read.bytes.rate_cmaui\r
+      disk.read.bytes_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.read.bytes_cmaui\r
+      disk.read.bytes_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.read.bytes_cmaui\r
+      disk.device.read.bytes_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.read.bytes_cmaui\r
+      disk.device.read.bytes_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.read.bytes_cmaui\r
+      disk.write.requests.rate_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.write.requests.rate_cmaui\r
+      disk.write.requests.rate_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.write.requests.rate_cmaui\r
+      memory_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - memory_cmaui\r
+      cpu_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - cpu_cmaui\r
+      cpu_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - cpu_cmaui\r
+      network.incoming.packets_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.incoming.packets_cmaui_cmaui_port\r
+      network.incoming.packets_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.incoming.packets_cmaui_cmaui_port\r
+      disk.ephemeral.size_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.ephemeral.size_cmaui\r
+      disk.ephemeral.size_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.ephemeral.size_cmaui\r
+      disk.capacity_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.capacity_cmaui\r
+      disk.capacity_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.capacity_cmaui\r
+      binding_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - binding_cmaui_cmaui_port\r
+      binding_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - binding_cmaui_cmaui_port\r
+      disk.iops_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.iops_cmaui\r
+      disk.iops_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.iops_cmaui\r
+      disk.device.write.requests_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.write.requests_cmaui\r
+      disk.device.write.requests_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.write.requests_cmaui\r
+      network.outgoing.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.outgoing.bytes.rate_cmaui_cmaui_port\r
+      disk.device.write.bytes.rate_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.write.bytes.rate_cmaui\r
+      cpu_util_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - cpu_util_cmaui\r
+      network.outgoing.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.outgoing.bytes.rate_cmaui_cmaui_port\r
+      network.incoming.bytes_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.incoming.bytes_cmaui_cmaui_port\r
+      cpu_util_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - cpu_util_cmaui\r
+      network.incoming.bytes_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.incoming.bytes_cmaui_cmaui_port\r
+      disk.device.write.bytes.rate_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.write.bytes.rate_cmaui\r
+      disk.write.bytes.rate_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.write.bytes.rate_cmaui\r
+      disk.device.write.bytes_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.write.bytes_cmaui\r
+      disk.write.bytes.rate_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.write.bytes.rate_cmaui\r
+      disk.device.write.bytes_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.write.bytes_cmaui\r
+      network.incoming.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.incoming.packets.rate_cmaui_cmaui_port\r
+      network.incoming.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.incoming.packets.rate_cmaui_cmaui_port\r
+      feature_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - feature_cmaui_cmaui_port\r
+      feature_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - feature_cmaui_cmaui_port\r
+      disk.write.bytes_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.write.bytes_cmaui\r
+      disk.write.bytes_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.write.bytes_cmaui\r
+      feature_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - feature_cmaui\r
+      disk.allocation_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.allocation_cmaui\r
+      feature_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - feature_cmaui\r
+      disk.allocation_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.allocation_cmaui\r
+      binding_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - binding_cmaui\r
+      binding_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - binding_cmaui\r
+      vcpus_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - vcpus_cmaui\r
+      attachment_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - attachment_cmaui_cmaui_port\r
+      scalable_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - scalable_cmaui\r
+      scalable_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - scalable_cmaui\r
+      network.outgoing.packets.rate_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.outgoing.packets.rate_cmaui_cmaui_port\r
+      network.outgoing.packets.rate_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.outgoing.packets.rate_cmaui_cmaui_port\r
+      attachment_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - attachment_cmaui_cmaui_port\r
+      disk.write.requests_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.write.requests_cmaui\r
+      disk.write.requests_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.write.requests_cmaui\r
+      disk.usage_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.usage_cmaui\r
+      disk.usage_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.usage_cmaui\r
+      endpoint_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - endpoint_cmaui\r
+      endpoint_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - endpoint_cmaui\r
+      os_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - os_cmaui\r
+      os_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - os_cmaui\r
+      forwarder_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - forwarder_cmaui_cmaui_port\r
+      forwarder_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - forwarder_cmaui_cmaui_port\r
+      disk.device.allocation_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.allocation_cmaui\r
+      disk.device.allocation_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.allocation_cmaui\r
+      memory_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - memory_cmaui\r
+      host_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - host_cmaui\r
+      host_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - host_cmaui\r
+      instance_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - instance_cmaui\r
+      disk.device.capacity_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.capacity_cmaui\r
+      instance_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - instance_cmaui\r
+      disk.device.read.requests.rate_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.read.requests.rate_cmaui\r
+      network.incoming.bytes.rate_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.incoming.bytes.rate_cmaui_cmaui_port\r
+      network.incoming.bytes.rate_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.incoming.bytes.rate_cmaui_cmaui_port\r
+      vcpus_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - vcpus_cmaui\r
+      disk.device.read.requests_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.read.requests_cmaui\r
+      disk.read.bytes.rate_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.read.bytes.rate_cmaui\r
+      network.outpoing.packets_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - network.outpoing.packets_cmaui_cmaui_port\r
+      disk.read.bytes.rate_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.read.bytes.rate_cmaui\r
+      network.outpoing.packets_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - network.outpoing.packets_cmaui_cmaui_port\r
+      disk.device.read.requests_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.device.read.requests_cmaui\r
+      cpu.delta_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - cpu.delta_cmaui\r
+      cpu.delta_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - cpu.delta_cmaui\r
+      disk.device.read.requests.rate_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.device.read.requests.rate_cmaui\r
+      memory.resident_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - memory.resident_cmaui\r
+      memory.resident_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - memory.resident_cmaui\r
+      disk.latency_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - disk.latency_cmaui\r
+      disk.latency_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - disk.latency_cmaui\r
+      memory.usage_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - memory.usage_cmaui\r
+      memory.usage_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - memory.usage_cmaui\r
+    requirements:\r
+      dependency_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - dependency_cmaui_cmaui_port\r
+      local_storage_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - local_storage_cmaui\r
+      link_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - link_cmaui_cmaui_port\r
+      dependency_server_cmaui_2:\r
+      - abstract_cmaui\r
+      - dependency_cmaui\r
+      link_cmaui_port_1:\r
+      - abstract_cmaui\r
+      - link_cmaui_cmaui_port\r
+      dependency_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - dependency_cmaui\r
+      dependency_cmaui_port_2:\r
+      - abstract_cmaui\r
+      - dependency_cmaui_cmaui_port\r
+      local_storage_server_cmaui_1:\r
+      - abstract_cmaui\r
+      - local_storage_cmaui\r
\ No newline at end of file
index 69830fe..4ec6fb6 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO_PORT_1
-        - AUTO_PORT_0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-1
-        - Network-0
-        compute_pd_server_user_data_format:
-        - RAW_SERVER_PD_2
-        - RAW_SERVER_PD_1
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - abstract_pd_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO_PORT_1\r
+        - AUTO_PORT_0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-1\r
+        - Network-0\r
+        compute_pd_server_user_data_format:\r
+        - RAW_SERVER_PD_2\r
+        - RAW_SERVER_PD_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - abstract_pd_server\r
\ No newline at end of file
index 00c6eeb..601ea81 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-  node_templates:
-    network_policy_server_pd_01:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
-      properties:
-        name:
-          get_attribute:
-          - abstract_pd_server
-          - pd_server_accessIPv4
-    network_policy_server_pd_02:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
-      properties:
-        name:
-          get_attribute:
-          - abstract_pd_server
-          - pd_server_accessIPv6
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO_PORT_1
-        - AUTO_PORT_0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-1
-        - Network-0
-        compute_pd_server_user_data_format:
-        - RAW_SERVER_PD_2
-        - RAW_SERVER_PD_1
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    network_policy_port0:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
-      properties:
-        entries:
-          get_attribute:
-          - abstract_pd_server
-          - pd_server_pd01_port_device_owner
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - network_policy_server_pd_01
-      - network_policy_server_pd_02
-      - network_policy_port0
-      - abstract_pd_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    network_policy_server_pd_01:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules\r
+      properties:\r
+        name:\r
+          get_attribute:\r
+          - abstract_pd_server\r
+          - pd_server_accessIPv4\r
+    network_policy_server_pd_02:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules\r
+      properties:\r
+        name:\r
+          get_attribute:\r
+          - abstract_pd_server\r
+          - pd_server_accessIPv6\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO_PORT_1\r
+        - AUTO_PORT_0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-1\r
+        - Network-0\r
+        compute_pd_server_user_data_format:\r
+        - RAW_SERVER_PD_2\r
+        - RAW_SERVER_PD_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    network_policy_port0:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules\r
+      properties:\r
+        entries:\r
+          get_attribute:\r
+          - abstract_pd_server\r
+          - pd_server_pd01_port_device_owner\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - network_policy_server_pd_01\r
+      - network_policy_server_pd_02\r
+      - network_policy_port0\r
+      - abstract_pd_server\r
\ No newline at end of file
index ec6a628..e1c71de 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    dummy_net_name_1:
-      label: dummy net name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: dummy_net_name_1
-      type: string
-      description: dummy net name
-      default: Network-1
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - get_attribute:
-          - network_policy_server
-          - name
-        - AUTO_PORT_0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-1
-        - Network-0
-        compute_pd_server_user_data_format:
-        - RAW_SERVER_PD_2
-        - get_attribute:
-          - network_policy_server
-          - name
-        compute_pd_server_metadata:
-        - get_attribute:
-          - network_policy_server
-          - name
-        - null
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    network_policy_server:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
-      properties:
-        name:
-          get_input: dummy_net_name_1
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - network_policy_server
-      - abstract_pd_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    dummy_net_name_1:\r
+      label: dummy net name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: dummy_net_name_1\r
+      type: string\r
+      description: dummy net name\r
+      default: Network-1\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - get_attribute:\r
+          - network_policy_server\r
+          - name\r
+        - AUTO_PORT_0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-1\r
+        - Network-0\r
+        compute_pd_server_user_data_format:\r
+        - RAW_SERVER_PD_2\r
+        - get_attribute:\r
+          - network_policy_server\r
+          - name\r
+        compute_pd_server_metadata:\r
+        - get_attribute:\r
+          - network_policy_server\r
+          - name\r
+        - null\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    network_policy_server:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules\r
+      properties:\r
+        name:\r
+          get_input: dummy_net_name_1\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - network_policy_server\r
+      - abstract_pd_server\r
\ No newline at end of file
index 806765b..1d875f2 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-1
-        - Network-0
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - abstract_pd_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-1\r
+        - Network-0\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - abstract_pd_server\r
\ No newline at end of file
index dd5df2e..c22da71 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    packet_mirror_network_name:
-      label: packet mirror network name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: packet_mirror_network_name
-      type: string
-      description: name of the oam network
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-  node_templates:
-    jsa_security_group:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name: Test-SecurityGroup
-        description: ems security group
-        rules:
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-      requirements:
-      - port:
-          capability: attachment_pd_server_pd01_port
-          node: abstract_pd_server
-          relationship: org.openecomp.relationships.AttachesTo
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO_PORT_1
-        - AUTO_PORT_0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_security_groups:
-        - - jsa_security_group
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-1
-        - Network-0
-        compute_pd_server_user_data_format:
-        - RAW_SERVER_PD_2
-        - RAW_SERVER_PD_1
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    resource_with_dependOn:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_mirror_network_name
-      requirements:
-      - dependency:
-          capability: feature_pd_server
-          node: abstract_pd_server
-          relationship: tosca.relationships.DependsOn
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - jsa_security_group
-      - resource_with_dependOn
-      - abstract_pd_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    packet_mirror_network_name:\r
+      label: packet mirror network name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: packet_mirror_network_name\r
+      type: string\r
+      description: name of the oam network\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    jsa_security_group:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules\r
+      properties:\r
+        name: Test-SecurityGroup\r
+        description: ems security group\r
+        rules:\r
+        - protocol: icmp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+      requirements:\r
+      - port:\r
+          capability: attachment_pd_server_pd01_port\r
+          node: abstract_pd_server\r
+          relationship: org.openecomp.relationships.AttachesTo\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO_PORT_1\r
+        - AUTO_PORT_0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_security_groups:\r
+        - - jsa_security_group\r
+        - - jsa_security_group\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-1\r
+        - Network-0\r
+        compute_pd_server_user_data_format:\r
+        - RAW_SERVER_PD_2\r
+        - RAW_SERVER_PD_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    resource_with_dependOn:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_mirror_network_name\r
+      requirements:\r
+      - dependency:\r
+          capability: feature_pd_server\r
+          node: abstract_pd_server\r
+          relationship: tosca.relationships.DependsOn\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - jsa_security_group\r
+      - resource_with_dependOn\r
+      - abstract_pd_server\r
\ No newline at end of file
index d8ed63f..acdd8c1 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd01_cinder_volume_size:
-      label: volume size
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd01_cinder_volume_size
-      type: string
-      description: volume size
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    packet_mirror_network_name:
-      label: packet mirror network name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: packet_mirror_network_name
-      type: string
-      description: name of the network
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-    pd01_volume_type:
-      label: volume type
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd01_volume_type
-      type: string
-      description: volume type
-  node_templates:
-    packet_mirror_network:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        network_name:
-          get_input: packet_mirror_network_name
-    pd01_volume:
-      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
-      properties:
-        volume_type:
-          get_input: pd01_volume_type
-        size: '(get_input : pd01_cinder_volume_size) * 1024'
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO_PORT_1
-        - AUTO_PORT_0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - packet_mirror_network
-        compute_pd_server_user_data_format:
-        - RAW_SERVER_PD_2
-        - RAW_SERVER_PD_1
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-      requirements:
-      - dependency_pd_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pd01_port:
-          capability: tosca.capabilities.network.Linkable
-          node: packet_mirror_network
-          relationship: tosca.relationships.network.LinksTo
-      - local_storage_pd_server:
-          capability: tosca.capabilities.Attachment
-          node: pd01_volume
-          relationship: pd02_volume_attachment
-      - local_storage_pd_server:
-          capability: tosca.capabilities.Attachment
-          node: pd01_volume
-          relationship: pd01_volume_attachment
-  relationship_templates:
-    pd01_volume_attachment:
-      type: org.openecomp.relationships.VolumeAttachesTo
-      properties:
-        volume_id: pd01_volume
-        instance_uuid: abstract_pd_server
-    pd02_volume_attachment:
-      type: org.openecomp.relationships.VolumeAttachesTo
-      properties:
-        volume_id: pd01_volume
-        instance_uuid: abstract_pd_server
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - packet_mirror_network
-      - pd01_volume
-      - abstract_pd_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd01_cinder_volume_size:\r
+      label: volume size\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd01_cinder_volume_size\r
+      type: string\r
+      description: volume size\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    packet_mirror_network_name:\r
+      label: packet mirror network name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: packet_mirror_network_name\r
+      type: string\r
+      description: name of the network\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+    pd01_volume_type:\r
+      label: volume type\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd01_volume_type\r
+      type: string\r
+      description: volume type\r
+  node_templates:\r
+    packet_mirror_network:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        network_name:\r
+          get_input: packet_mirror_network_name\r
+    pd01_volume:\r
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume\r
+      properties:\r
+        volume_type:\r
+          get_input: pd01_volume_type\r
+        size: '(get_input : pd01_cinder_volume_size) * 1024'\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO_PORT_1\r
+        - AUTO_PORT_0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - packet_mirror_network\r
+        - packet_mirror_network\r
+        compute_pd_server_user_data_format:\r
+        - RAW_SERVER_PD_2\r
+        - RAW_SERVER_PD_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - dependency_pd_server:\r
+          capability: tosca.capabilities.Node\r
+          node: packet_mirror_network\r
+          relationship: tosca.relationships.DependsOn\r
+      - link_pd_server_pd01_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: packet_mirror_network\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - local_storage_pd_server:\r
+          capability: tosca.capabilities.Attachment\r
+          node: pd01_volume\r
+          relationship: pd02_volume_attachment\r
+      - local_storage_pd_server:\r
+          capability: tosca.capabilities.Attachment\r
+          node: pd01_volume\r
+          relationship: pd01_volume_attachment\r
+  relationship_templates:\r
+    pd01_volume_attachment:\r
+      type: org.openecomp.relationships.VolumeAttachesTo\r
+      properties:\r
+        volume_id: pd01_volume\r
+        instance_uuid: abstract_pd_server\r
+    pd02_volume_attachment:\r
+      type: org.openecomp.relationships.VolumeAttachesTo\r
+      properties:\r
+        volume_id: pd01_volume\r
+        instance_uuid: abstract_pd_server\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - packet_mirror_network\r
+      - pd01_volume\r
+      - abstract_pd_server\r
\ No newline at end of file
index 4c33369..0ce529d 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_scheduler_hints:
-        - group: BE_Affinity_group
-        - group: BE_Affinity_group
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO_PORT_1
-        - AUTO_PORT_0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-1
-        - Network-0
-        compute_pd_server_user_data_format:
-        - RAW_SERVER_PD_2
-        - RAW_SERVER_PD_1
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - abstract_pd_server
-    BE_Affinity_group:
-      type: tosca.groups.Root
-      members:
-      - abstract_pd_server
-  policies:
-    BE_Affinity_policy:
-      type: org.openecomp.policies.placement.Colocate
-      properties:
-        name: Policy_BE_Affinity
-        affinity: host
-      targets:
-      - BE_Affinity_group
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_scheduler_hints:\r
+        - group: BE_Affinity_group\r
+        - group: BE_Affinity_group\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO_PORT_1\r
+        - AUTO_PORT_0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-1\r
+        - Network-0\r
+        compute_pd_server_user_data_format:\r
+        - RAW_SERVER_PD_2\r
+        - RAW_SERVER_PD_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - abstract_pd_server\r
+    BE_Affinity_group:\r
+      type: tosca.groups.Root\r
+      members:\r
+      - abstract_pd_server\r
+  policies:\r
+    BE_Affinity_policy:\r
+      type: org.openecomp.policies.placement.Colocate\r
+      properties:\r
+        name: Policy_BE_Affinity\r
+        affinity: host\r
+      targets:\r
+      - BE_Affinity_group\r
\ No newline at end of file
index 1ec1a4b..af572a7 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-  node_templates:
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO_PORT_1
-        - AUTO_PORT_0
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-1
-        - Network-0
-        compute_pd_server_user_data_format:
-        - RAW_SERVER_PD_2
-        - RAW_SERVER_PD_1
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - abstract_pd_server
-  outputs:
-    output_attr_port_pd_0:
-      description: output attr port0
-      value:
-        get_attribute:
-        - abstract_pd_server
-        - pd_server_pd01_port_device_id
-    output_attr_server_pd_1:
-      description: output attr pd1
-      value:
-        get_attribute:
-        - abstract_pd_server
-        - pd_server_accessIPv4
-    output_attr_server_pd_2:
-      description: output attr pd2
-      value:
-        get_attribute:
-        - abstract_pd_server
-        - pd_server_accessIPv6
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO_PORT_1\r
+        - AUTO_PORT_0\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-1\r
+        - Network-0\r
+        compute_pd_server_user_data_format:\r
+        - RAW_SERVER_PD_2\r
+        - RAW_SERVER_PD_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - abstract_pd_server\r
+  outputs:\r
+    output_attr_port_pd_0:\r
+      description: output attr port0\r
+      value:\r
+        get_attribute:\r
+        - abstract_pd_server\r
+        - pd_server_pd01_port_device_id\r
+    output_attr_server_pd_1:\r
+      description: output attr pd1\r
+      value:\r
+        get_attribute:\r
+        - abstract_pd_server\r
+        - pd_server_accessIPv4\r
+    output_attr_server_pd_2:\r
+      description: output attr pd2\r
+      value:\r
+        get_attribute:\r
+        - abstract_pd_server\r
+        - pd_server_accessIPv6\r
\ No newline at end of file
index dff6ff6..f26e26a 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    ps_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ps_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPS001
-      - ZRDM1MOGX01MPS002
-      - ZRDM1MOGX01MPS003
-      - ZRDM1MOGX01MPS004
-      entry_schema:
-        type: string
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    ps_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ps_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-    ps_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ps_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-  node_templates:
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-PD-1
-        - Network-PD-0
-        compute_pd_server_user_data_format:
-        - null
-        - RAW
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_ps_server:
-      type: org.openecomp.resource.abstract.nodes.ps_server
-      directives:
-      - substitutable
-      properties:
-        compute_ps_server_name:
-        - get_input:
-          - ps_server_names
-          - 0
-        - get_input:
-          - ps_server_names
-          - 1
-        compute_ps_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_ps_server_user_data_format:
-        - null
-        - RAW
-        vm_flavor_name:
-          get_input: ps_flavor_name
-        vm_image_name:
-          get_input: ps_image_name
-        port_ps01_port_replacement_policy:
-        - AUTO
-        port_ps01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps01_port_network:
-        - Network-PS-0
-        - Network-PS-1
-        port_ps01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_ps_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - abstract_pd_server
-      - abstract_ps_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    ps_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ps_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPS001\r
+      - ZRDM1MOGX01MPS002\r
+      - ZRDM1MOGX01MPS003\r
+      - ZRDM1MOGX01MPS004\r
+      entry_schema:\r
+        type: string\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    ps_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ps_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+    ps_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ps_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+  node_templates:\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-PD-1\r
+        - Network-PD-0\r
+        compute_pd_server_user_data_format:\r
+        - null\r
+        - RAW\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_ps_server:\r
+      type: org.openecomp.resource.abstract.nodes.ps_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_ps_server_name:\r
+        - get_input:\r
+          - ps_server_names\r
+          - 0\r
+        - get_input:\r
+          - ps_server_names\r
+          - 1\r
+        compute_ps_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_ps_server_user_data_format:\r
+        - null\r
+        - RAW\r
+        vm_flavor_name:\r
+          get_input: ps_flavor_name\r
+        vm_image_name:\r
+          get_input: ps_image_name\r
+        port_ps01_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        port_ps01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps01_port_network:\r
+        - Network-PS-0\r
+        - Network-PS-1\r
+        port_ps01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_ps_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - abstract_pd_server\r
+      - abstract_ps_server\r
\ No newline at end of file
index d8244c2..3e3f5cf 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-topology_template:
-  inputs:
-    pd_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-    ps_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ps_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPS001
-      - ZRDM1MOGX01MPS002
-      - ZRDM1MOGX01MPS003
-      - ZRDM1MOGX01MPS004
-      entry_schema:
-        type: string
-    availabilityzone_name:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone name
-      default: nova
-    ps_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ps_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_image_name:
-      label: image name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_image_name
-      type: string
-      description: PD image name
-      default: MOG_BASE_8.0
-    pd_server_names:
-      label: PD server names
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: pd_server_names
-      type: list
-      description: name of the PD instance
-      default:
-      - ZRDM1MOGX01MPD001
-      - ZRDM1MOGX01MPD002
-      entry_schema:
-        type: string
-    ps_flavor_name:
-      label: PD flavor name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - hot-mog-0108-bs1271
-            source_type: HEAT
-            param_name: ps_flavor_name
-      type: string
-      description: flavor name of PD instance
-      default: m3.xlarge
-  node_templates:
-    abstract_pd_server:
-      type: org.openecomp.resource.abstract.nodes.pd_server
-      directives:
-      - substitutable
-      properties:
-        compute_pd_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_pd_server_name:
-        - get_input:
-          - pd_server_names
-          - 1
-        - get_input:
-          - pd_server_names
-          - 0
-        port_pd01_port_replacement_policy:
-        - AUTO
-        vm_flavor_name:
-          get_input: pd_flavor_name
-        port_pd01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        vm_image_name:
-          get_input: pd_image_name
-        port_pd01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        port_pd01_port_network:
-        - Network-PD-1
-        - Network-PD-0
-        compute_pd_server_user_data_format:
-        - null
-        - get_attribute:
-          - abstract_ps_server
-          - ps_server_accessIPv4
-        service_template_filter:
-          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-    abstract_ps_server:
-      type: org.openecomp.resource.abstract.nodes.ps_server
-      directives:
-      - substitutable
-      properties:
-        compute_ps_server_name:
-        - get_input:
-          - ps_server_names
-          - 0
-        - get_input:
-          - ps_server_names
-          - 1
-        compute_ps_server_availability_zone:
-        - get_input: availabilityzone_name
-        - get_input: availabilityzone_name
-        compute_ps_server_user_data_format:
-        - get_attribute:
-          - abstract_pd_server
-          - pd_server_accessIPv4
-        - null
-        vm_flavor_name:
-          get_input: ps_flavor_name
-        vm_image_name:
-          get_input: ps_image_name
-        port_ps01_port_replacement_policy:
-        - AUTO
-        port_ps01_port_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_ps01_port_network:
-        - Network-PS-0
-        - Network-PS-1
-        port_ps01_port_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: false
-          floating_ip_count_required:
-            is_required: false
-        service_template_filter:
-          substitute_service_template: Nested_ps_serverServiceTemplate.yaml
-          count: 2
-        index_value:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-  groups:
-    hot-mog-0108-bs1271_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml
-        description: heat template that creates MOG stack
-      members:
-      - abstract_pd_server
-      - abstract_ps_server
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    pd_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+    ps_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ps_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPS001\r
+      - ZRDM1MOGX01MPS002\r
+      - ZRDM1MOGX01MPS003\r
+      - ZRDM1MOGX01MPS004\r
+      entry_schema:\r
+        type: string\r
+    availabilityzone_name:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone name\r
+      default: nova\r
+    ps_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ps_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_image_name:\r
+      label: image name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_image_name\r
+      type: string\r
+      description: PD image name\r
+      default: MOG_BASE_8.0\r
+    pd_server_names:\r
+      label: PD server names\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: pd_server_names\r
+      type: list\r
+      description: name of the PD instance\r
+      default:\r
+      - ZRDM1MOGX01MPD001\r
+      - ZRDM1MOGX01MPD002\r
+      entry_schema:\r
+        type: string\r
+    ps_flavor_name:\r
+      label: PD flavor name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - hot-mog-0108-bs1271\r
+            source_type: HEAT\r
+            param_name: ps_flavor_name\r
+      type: string\r
+      description: flavor name of PD instance\r
+      default: m3.xlarge\r
+  node_templates:\r
+    abstract_pd_server:\r
+      type: org.openecomp.resource.abstract.nodes.pd_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_pd_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_pd_server_name:\r
+        - get_input:\r
+          - pd_server_names\r
+          - 1\r
+        - get_input:\r
+          - pd_server_names\r
+          - 0\r
+        port_pd01_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        vm_flavor_name:\r
+          get_input: pd_flavor_name\r
+        port_pd01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        vm_image_name:\r
+          get_input: pd_image_name\r
+        port_pd01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        port_pd01_port_network:\r
+        - Network-PD-1\r
+        - Network-PD-0\r
+        compute_pd_server_user_data_format:\r
+        - null\r
+        - get_attribute:\r
+          - abstract_ps_server\r
+          - ps_server_accessIPv4\r
+        service_template_filter:\r
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+    abstract_ps_server:\r
+      type: org.openecomp.resource.abstract.nodes.ps_server\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_ps_server_name:\r
+        - get_input:\r
+          - ps_server_names\r
+          - 0\r
+        - get_input:\r
+          - ps_server_names\r
+          - 1\r
+        compute_ps_server_availability_zone:\r
+        - get_input: availabilityzone_name\r
+        - get_input: availabilityzone_name\r
+        compute_ps_server_user_data_format:\r
+        - get_attribute:\r
+          - abstract_pd_server\r
+          - pd_server_accessIPv4\r
+        - null\r
+        vm_flavor_name:\r
+          get_input: ps_flavor_name\r
+        vm_image_name:\r
+          get_input: ps_image_name\r
+        port_ps01_port_replacement_policy:\r
+        - AUTO\r
+        - AUTO\r
+        port_ps01_port_mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        port_ps01_port_network:\r
+        - Network-PS-0\r
+        - Network-PS-1\r
+        port_ps01_port_ip_requirements:\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        - - ip_version: 4\r
+            ip_count_required:\r
+              is_required: false\r
+            floating_ip_count_required:\r
+              is_required: false\r
+        service_template_filter:\r
+          substitute_service_template: Nested_ps_serverServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+  groups:\r
+    hot-mog-0108-bs1271_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/hot-mog-0108-bs1271.yml\r
+        description: heat template that creates MOG stack\r
+      members:\r
+      - abstract_pd_server\r
+      - abstract_ps_server\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/main.yml
new file mode 100644 (file)
index 0000000..39a2a27
--- /dev/null
@@ -0,0 +1,230 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port}
+  vdbe_untr_1_port:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: "%index%"
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/in/nested.yml
new file mode 100644 (file)
index 0000000..4462e24
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..ee07a44
--- /dev/null
@@ -0,0 +1,679 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_nested_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_nested_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      subinterface_nested_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_nested_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9ca2cbf
--- /dev/null
@@ -0,0 +1,466 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_nested_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_nested_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_nested_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_nested_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_nested_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        subinterface_nested_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_nested_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_nested_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_nested_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_nested_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..5e145ab
--- /dev/null
@@ -0,0 +1,498 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_nested_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_nested_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    subinterface_nested_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_nested_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_nested_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe_vdbe_untr_1_port_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_nested_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_nested_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_nested_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_nested_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_nested_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_nested_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_nested_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_nested_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_nested_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature_vdbe_untr_x_subport\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - link_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/computePortNetworkSubInterface/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d70a184
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - link\r
+      dependency_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - dependency\r
+      binding_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..89f844a
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "vlan1.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    },
+    {
+      "file": "vlan2.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/main.yml
new file mode 100644 (file)
index 0000000..fd9e992
--- /dev/null
@@ -0,0 +1,351 @@
+heat_template_version: 2013-05-23\r
+\r
+description: >\r
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+\r
+parameters:\r
+  aap_address_mode:\r
+    description: "Address mode for the vDBE cluster IP"\r
+    type: string\r
+  control_int_net_forwarding_mode:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: string\r
+  control_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the control virtual network"\r
+    type: string\r
+  control_int_net_shared:\r
+    description: "control virtual network shared"\r
+    type: boolean\r
+  control_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: boolean\r
+  fabric_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: boolean\r
+  fabric_int_net_forwarding_mode:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_shared:\r
+    description: "fabric virtual network shared"\r
+  oam_net_name:\r
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"\r
+    type: string\r
+  untrusted_net_name:\r
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"\r
+    type: string\r
+  untrusted_num_vn:\r
+    constraints:\r
+      -\r
+        range:\r
+          max: 77\r
+          min: 1\r
+    description: "Number of vDBE subinterface virtual Networks"\r
+    type: number\r
+  untrusted_vlan_tags:\r
+    description: "List of subinterface vlan tags"\r
+    type: comma_delimited_list\r
+  untrusted_vn_networks:\r
+    description: "List of subinterface virtual networks"\r
+    type: comma_delimited_list\r
+  vdbe_aap_sec_untrusted_ip_prefix:\r
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_sec_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix:\r
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix:\r
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix_len:\r
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_device_name:\r
+    description: "VDBE device Name for this vdbe VNF"\r
+    type: string\r
+  vdbe_hw_untr_mac_1:\r
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_name_1:\r
+    description: "VM Name for this vdbe node 1"\r
+    type: string\r
+  vdbe_untrusted_ip_1:\r
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_v6_ip_1:\r
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_vmac_address:\r
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_flavor_name:\r
+    description: "Flavor to use for vDBE"\r
+    type: string\r
+  vdbe_image_name:\r
+    description: "Image to use for vDBE"\r
+    type: string\r
+  vnf_id:\r
+    description: "Unique ID for this VF inst"\r
+    type: string\r
+  vnf_name:\r
+    description: "Unique name for this VF instance"\r
+    type: string\r
+  vf_module_id:\r
+    description: "Unique ID for this VF module inst"\r
+    type: string\r
+  availability_zone_1:\r
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."\r
+    type: string\r
+  counter:\r
+    description: "Counter."\r
+    type: number\r
+resources:\r
+  vdbe_untr_1_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count:\r
+        get_param: untrusted_num_vn\r
+      resource_def:\r
+        type: vlan1.yml\r
+        properties:\r
+          aap_address_mode:\r
+            {get_attr: [fabric_int_net, name]}\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_1_port\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_param: untrusted_vn_networks\r
+  vdbe_node_1:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      availability_zone:\r
+        get_param: availability_zone_1\r
+      flavor:\r
+        get_param: vdbe_flavor_name\r
+      image:\r
+        get_param: vdbe_image_name\r
+      metadata:\r
+        vf_module_id:\r
+          get_param: vf_module_id\r
+        vnf_id:\r
+          get_param: vnf_id\r
+        vnf_name:\r
+          get_param: vnf_name\r
+      name:\r
+        get_param: vdbe_name_1\r
+      networks:\r
+        - port: {get_resource: vdbe_untr_1_port}\r
+        - port: {get_resource: vdbe_untr_2_port}\r
+  vdbe_untr_1_port:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            DBE:\r
+              get_param: vdbe_device_name\r
+            VM_NAME:\r
+              get_param: vdbe_name_1\r
+          template: VM_NAMEDBE001p1n004\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: control_int_net\r
+  vdbe_untr_2_port:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name: Port_2\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: fabric_int_net\r
+  vdbe_untr_2_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count: 5\r
+      resource_def:\r
+        type: vlan2.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_2_port\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_resource: fabric_int_net\r
+  control_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: control_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: control_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: VNF_NAME_control_net\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: control_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: control_int_net_rpf\r
+  fabric_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: fabric_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: fabric_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: {get_attr: [vdbe_untr_1_subports, vlan_tag_list]}\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: fabric_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: fabric_int_net_rpf\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/vlan1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/vlan1.yml
new file mode 100644 (file)
index 0000000..4462e24
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/vlan2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/in/vlan2.yml
new file mode 100644 (file)
index 0000000..25e853c
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport_another:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4ec9d0d
--- /dev/null
@@ -0,0 +1,1064 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_2_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_vlan1_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      port_vdbe_untr_2_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_2_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan1_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan2_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan2_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_vlan1_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_vlan2_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    attributes:\r
+      vdbe_vdbe_untr_1_port_vlan1_vlan_tag_list:\r
+        type: list\r
+        status: SUPPORTED\r
+        entry_schema: &id001\r
+          type: string\r
+    requirements:\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_2_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_2_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_2_port_vlan2:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_2_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_2_port_vlan2:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_2_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema: *id001\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport_another:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_another:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport_another:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport_another:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7701a81
--- /dev/null
@@ -0,0 +1,599 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    fabric_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the fabric virtual network\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    fabric_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the fabric virtual network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    fabric_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the fabric virtual network\r
+    fabric_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_shared\r
+      description: fabric virtual network shared\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    fabric_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template:\r
+              get_attribute:\r
+              - abstract_vdbe\r
+              - vdbe_vdbe_untr_1_port_vlan1_vlan_tag_list\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_vlan1_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_vlan1_counter:\r
+        - get_input: counter\r
+        subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        subinterface_vlan2_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vlan2_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan2_parent_interface:\r
+        - vdbe_untr_2_port\r
+        subinterface_vlan2_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_vlan1_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan2_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan1_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        subinterface_vlan2_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        subinterface_vlan1_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan2_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        port_vdbe_untr_2_port_virtual_network_refs:\r
+        - - fabric_int_net\r
+        subinterface_vlan2_vn_network_list:\r
+        - fabric_int_net\r
+        subinterface_vlan1_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        port_vdbe_untr_2_port_name:\r
+        - Port_2\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        subinterface_vlan2_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        subinterface_vlan1_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_vlan2_counter:\r
+        - get_input: counter\r
+        subinterface_vlan1_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_vlan1_aap_address_mode:\r
+        - get_attribute:\r
+          - fabric_int_net\r
+          - network_name\r
+        subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan2_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_vdbe_untr_2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: fabric_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_untr_x_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: fabric_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - fabric_int_net\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..23204af
--- /dev/null
@@ -0,0 +1,809 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_2_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_vlan1_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_network_role:\r
+      type: string\r
+      required: true\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    port_vdbe_untr_2_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_2_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_2_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_vlan2_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    subinterface_vlan2_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_vlan1_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    subinterface_vlan2_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan2_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan2_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_vlan2_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_vlan1_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_vlan2_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_2_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_2_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_2_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_2_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_2_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_2_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_2_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_2_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_2_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_2_port_vlan2:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vlan2_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vlan2_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vlan2_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vlan2_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: vlan2ServiceTemplate.yaml\r
+          count: 5\r
+          mandatory: true\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vlan2_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vlan2_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vlan2_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vlan2_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vlan2_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport_another:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_2_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port_vlan1:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vlan1_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vlan1_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: vlan1ServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vlan1_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vlan1_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vlan1_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vlan1_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vlan1_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  outputs:\r
+    vdbe_vdbe_untr_1_port_vlan1_vlan_tag_list:\r
+      type: list\r
+      value:\r
+        get_attribute:\r
+        - vdbe_vdbe_untr_1_port_vlan1\r
+        - vlan_tag_list\r
+      entry_schema:\r
+        type: string\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - feature\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      network.incoming.packets_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.packets\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outpoing.packets\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature_vdbe_untr_x_subport\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.packets.rate\r
+      feature_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - feature\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      forwarder_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - forwarder\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      feature_vdbe_untr_x_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - feature_vdbe_untr_x_subport_another\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.bytes\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.packets.rate\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.bytes.rate\r
+      binding_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - binding\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      dependency_vdbe_untr_x_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - dependency_vdbe_untr_x_subport_another\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      link_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - link\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - dependency\r
+      dependency_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - dependency\r
+      dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - link_vdbe_untr_x_subport\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      link_vdbe_untr_x_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - link_vdbe_untr_x_subport_another\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency_vdbe_untr_x_subport\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/vlan1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/vlan1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..928c0d3
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: vlan1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+    aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    ip_v6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+    counter:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+    subinterfaces_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    vn_network_list:
+      hidden: false
+      immutable: false
+      type: string
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: HW MAC address to use for subinterface
+    vlan_tag_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual MAC address to use for subinterface
+    aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_untr_x_subport:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: parent_interface
+        name:
+          str_replace:
+            template: $NAME_$INDEX
+            params:
+              $NAME:
+                get_input: subinterfaces_name_prefix
+              $INDEX:
+                get_input:
+                - vlan_tag_list
+                - get_input: counter
+        virtual_network_refs:
+        - get_input: vn_network_list
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - vlan_tag_list
+            - get_input: counter
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: mac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vmac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    vlan1_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vlan1.yml
+        description: cmaui server template for vMMSC
+      members:
+      - vdbe_untr_x_subport
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1
+    capabilities:
+      feature_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - feature
+    requirements:
+      link_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - link
+      dependency_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - dependency
+      binding_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/vlan2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multiplePortsMultipleVlans/out/vlan2ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..beb9c2c
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: vlan2
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+    aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    ip_v6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+    counter:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+    subinterfaces_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    vn_network_list:
+      hidden: false
+      immutable: false
+      type: string
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: HW MAC address to use for subinterface
+    vlan_tag_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual MAC address to use for subinterface
+    aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_untr_x_subport_another:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: parent_interface
+        name:
+          str_replace:
+            template: $NAME_$INDEX
+            params:
+              $NAME:
+                get_input: subinterfaces_name_prefix
+              $INDEX:
+                get_input:
+                - vlan_tag_list
+                - get_input: counter
+        virtual_network_refs:
+        - get_input: vn_network_list
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - vlan_tag_list
+            - get_input: counter
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: mac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vmac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    vlan2_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vlan2.yml
+        description: cmaui server template for vMMSC
+      members:
+      - vdbe_untr_x_subport_another
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2
+    capabilities:
+      feature_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - feature
+    requirements:
+      dependency_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - dependency
+      link_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - link
+      binding_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..89f844a
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "vlan1.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    },
+    {
+      "file": "vlan2.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/main.yml
new file mode 100644 (file)
index 0000000..63e44bf
--- /dev/null
@@ -0,0 +1,279 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+  counter:
+    description: "Counter."
+    type: number
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port}
+  vdbe_untr_1_port:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: vlan1.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: counter
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+  vdbe_untr_2_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 5
+      resource_def:
+        type: vlan2.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: counter
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/vlan1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/vlan1.yml
new file mode 100644 (file)
index 0000000..4462e24
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/vlan2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/in/vlan2.yml
new file mode 100644 (file)
index 0000000..25e853c
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport_another:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..db2e23a
--- /dev/null
@@ -0,0 +1,923 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_vlan1_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan1_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan2_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_vlan1_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_vlan2_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port_vlan2:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_another_vdbe_vdbe_untr_1_port_vlan2:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_another_vdbe_vdbe_untr_1_port_vlan2:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_another_vdbe_vdbe_untr_1_port_vlan2:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_vlan2:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport_another:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_another:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport_another:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport_another:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..38048a8
--- /dev/null
@@ -0,0 +1,519 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_vlan1_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_vlan1_counter:\r
+        - get_input: counter\r
+        subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        subinterface_vlan2_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vlan2_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan2_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_vlan2_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_vlan1_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan2_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan1_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        subinterface_vlan2_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        subinterface_vlan1_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan2_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        subinterface_vlan2_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        subinterface_vlan1_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        subinterface_vlan2_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        subinterface_vlan1_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_vlan2_counter:\r
+        - get_input: counter\r
+        subinterface_vlan1_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_vlan1_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan2_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d17352a
--- /dev/null
@@ -0,0 +1,675 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_vlan1_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_vlan2_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    subinterface_vlan2_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_vlan1_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    subinterface_vlan2_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan2_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_vlan1_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_vlan2_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_1_port_vlan1:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vlan1_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vlan1_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: vlan1ServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vlan1_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vlan1_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vlan1_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vlan1_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vlan1_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port_vlan2:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vlan2_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vlan2_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vlan2_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vlan2_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: vlan2ServiceTemplate.yaml\r
+          count: 5\r
+          mandatory: true\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vlan2_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vlan2_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vlan2_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vlan2_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vlan2_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport_another:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      feature_vdbe_untr_x_subport_another_vdbe_vdbe_untr_1_port_vlan2:\r
+      - vdbe_vdbe_untr_1_port_vlan2\r
+      - feature_vdbe_untr_x_subport_another\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature\r
+      feature_vdbe_vdbe_untr_1_port_vlan2:\r
+      - vdbe_vdbe_untr_1_port_vlan2\r
+      - feature\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature_vdbe_untr_x_subport\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      link_vdbe_untr_x_subport_another_vdbe_vdbe_untr_1_port_vlan2:\r
+      - vdbe_vdbe_untr_1_port_vlan2\r
+      - link_vdbe_untr_x_subport_another\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - link_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port_vlan2:\r
+      - vdbe_vdbe_untr_1_port_vlan2\r
+      - dependency\r
+      dependency_vdbe_untr_x_subport_another_vdbe_vdbe_untr_1_port_vlan2:\r
+      - vdbe_vdbe_untr_1_port_vlan2\r
+      - dependency_vdbe_untr_x_subport_another\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency_vdbe_untr_x_subport\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/vlan1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/vlan1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..928c0d3
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: vlan1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+    aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    ip_v6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+    counter:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+    subinterfaces_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    vn_network_list:
+      hidden: false
+      immutable: false
+      type: string
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: HW MAC address to use for subinterface
+    vlan_tag_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual MAC address to use for subinterface
+    aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_untr_x_subport:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: parent_interface
+        name:
+          str_replace:
+            template: $NAME_$INDEX
+            params:
+              $NAME:
+                get_input: subinterfaces_name_prefix
+              $INDEX:
+                get_input:
+                - vlan_tag_list
+                - get_input: counter
+        virtual_network_refs:
+        - get_input: vn_network_list
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - vlan_tag_list
+            - get_input: counter
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: mac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vmac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    vlan1_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vlan1.yml
+        description: cmaui server template for vMMSC
+      members:
+      - vdbe_untr_x_subport
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1
+    capabilities:
+      feature_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - feature
+    requirements:
+      link_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - link
+      dependency_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - dependency
+      binding_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/vlan2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanDiffType/out/vlan2ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..beb9c2c
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: vlan2
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+    aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    ip_v6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+    counter:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+    subinterfaces_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    vn_network_list:
+      hidden: false
+      immutable: false
+      type: string
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: HW MAC address to use for subinterface
+    vlan_tag_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual MAC address to use for subinterface
+    aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_untr_x_subport_another:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: parent_interface
+        name:
+          str_replace:
+            template: $NAME_$INDEX
+            params:
+              $NAME:
+                get_input: subinterfaces_name_prefix
+              $INDEX:
+                get_input:
+                - vlan_tag_list
+                - get_input: counter
+        virtual_network_refs:
+        - get_input: vn_network_list
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - vlan_tag_list
+            - get_input: counter
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: mac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vmac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    vlan2_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vlan2.yml
+        description: cmaui server template for vMMSC
+      members:
+      - vdbe_untr_x_subport_another
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2
+    capabilities:
+      feature_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - feature
+    requirements:
+      dependency_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - dependency
+      link_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - link
+      binding_vdbe_untr_x_subport_another:
+      - vdbe_untr_x_subport_another
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/main.yml
new file mode 100644 (file)
index 0000000..949ecaf
--- /dev/null
@@ -0,0 +1,278 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+  counter:
+    description: "Counter."
+    type: number
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port}
+  vdbe_untr_1_port:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: "%index%"
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+  vdbe_untr_2_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 5
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: counter
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/in/nested.yml
new file mode 100644 (file)
index 0000000..4462e24
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7a2233a
--- /dev/null
@@ -0,0 +1,805 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_vdbe_untr_1_subports_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_vdbe_untr_1_subports_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      subinterface_vdbe_untr_2_subports_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_vdbe_untr_2_subports_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vdbe_untr_1_subports_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vdbe_untr_2_subports_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vdbe_untr_2_subports_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_vdbe_untr_1_subports_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vdbe_untr_2_subports_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vdbe_untr_2_subports_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..b451447
--- /dev/null
@@ -0,0 +1,517 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_vdbe_untr_1_subports_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        subinterface_vdbe_untr_2_subports_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vdbe_untr_1_subports_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vdbe_untr_1_subports_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_vdbe_untr_2_subports_counter:\r
+        - get_input: counter\r
+        subinterface_vdbe_untr_2_subports_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_vdbe_untr_1_subports_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_vdbe_untr_2_subports_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        subinterface_vdbe_untr_1_subports_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        subinterface_vdbe_untr_2_subports_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        subinterface_vdbe_untr_2_subports_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vdbe_untr_2_subports_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_vdbe_untr_1_subports_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        subinterface_vdbe_untr_1_subports_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        subinterface_vdbe_untr_1_subports_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_vdbe_untr_2_subports_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vdbe_untr_1_subports_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vdbe_untr_2_subports_parent_interface:\r
+        - vdbe_untr_1_port\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..48c11e9
--- /dev/null
@@ -0,0 +1,671 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_vdbe_untr_1_subports_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_vdbe_untr_1_subports_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    subinterface_vdbe_untr_2_subports_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_vdbe_untr_2_subports_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_vdbe_untr_1_subports_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    subinterface_vdbe_untr_2_subports_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_vdbe_untr_2_subports_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_vdbe_untr_1_subports_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    subinterface_vdbe_untr_2_subports_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vdbe_untr_2_subports_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vdbe_untr_1_subports_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count: 5\r
+          mandatory: true\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vdbe_untr_2_subports_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_1_subports\r
+      - feature_vdbe_untr_x_subport\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_2_subports\r
+      - feature_vdbe_untr_x_subport\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      feature_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_2_subports\r
+      - feature\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      feature_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_1_subports\r
+      - feature\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      dependency_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_2_subports\r
+      - dependency\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_1_subports\r
+      - link_vdbe_untr_x_subport\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_1_subports\r
+      - dependency_vdbe_untr_x_subport\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_2_subports\r
+      - link_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port_vdbe_untr_1_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_1_subports\r
+      - dependency\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_vdbe_untr_2_subports:\r
+      - vdbe_vdbe_untr_1_port_vdbe_untr_2_subports\r
+      - dependency_vdbe_untr_x_subport\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/multipleVlanSameType/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d70a184
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - link\r
+      dependency_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - dependency\r
+      binding_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..1e4a81f
--- /dev/null
@@ -0,0 +1,27 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    },
+    {
+      "file": "nested2.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    },
+    {
+      "file": "nested3.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/main.yml
new file mode 100644 (file)
index 0000000..1382067
--- /dev/null
@@ -0,0 +1,323 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port}
+  vdbe_untr_1_port:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+
+  subport_get_param_parent:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: 5
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_param: vdbe_hw_untr_mac_1
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+
+  subport_missing_vmi_refs_property:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested2.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: 5
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+
+  suport_missing_vlan_tag_property:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested3.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: 5
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested.yml
new file mode 100644 (file)
index 0000000..4462e24
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested2.yml
new file mode 100644 (file)
index 0000000..56472e3
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport_missing_vmi_refs:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      #virtual_machine_interface_refs:
+          #[{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested3.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/in/nested3.yml
new file mode 100644 (file)
index 0000000..54eb0d1
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport_missing_vlan_tag:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag_INVALID:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9c474dc
--- /dev/null
@@ -0,0 +1,806 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.nested2:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+  org.openecomp.resource.abstract.nodes.heat.nested3:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport_missing_vlan_tag:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_missing_vlan_tag:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport_missing_vlan_tag:\r
+        capability: tosca.capabilities.network.Bindable\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      forwarder_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_untr_x_subport_missing_vlan_tag:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..78ed220
--- /dev/null
@@ -0,0 +1,542 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_num_vn\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    suport_missing_vlan_tag_property:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested3\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_ip_prefix\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        ip_v6_address:\r
+          get_input: vdbe_untrusted_v6_ip_1\r
+        counter: 5\r
+        ip_address:\r
+          get_input: vdbe_untrusted_ip_1\r
+        subinterfaces_name_prefix:\r
+          str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        aap_address_mode:\r
+          get_input: aap_address_mode\r
+        service_template_filter:\r
+          substitute_service_template: nested3ServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        parent_interface: vdbe_untr_1_port\r
+        vn_network_list:\r
+          get_input: untrusted_vn_networks\r
+        mac_address:\r
+          get_input: vdbe_hw_untr_mac_1\r
+        vlan_tag_list:\r
+          get_input: untrusted_vlan_tags\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        vmac_address:\r
+          get_input: vdbe_untrusted_vmac_address\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_ip_prefix_len\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    subport_get_param_parent:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_ip_prefix\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        ip_v6_address:\r
+          get_input: vdbe_untrusted_v6_ip_1\r
+        counter: 5\r
+        ip_address:\r
+          get_input: vdbe_untrusted_ip_1\r
+        subinterfaces_name_prefix:\r
+          str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        aap_address_mode:\r
+          get_input: aap_address_mode\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        parent_interface:\r
+          get_input: vdbe_hw_untr_mac_1\r
+        vn_network_list:\r
+          get_input: untrusted_vn_networks\r
+        mac_address:\r
+          get_input: vdbe_hw_untr_mac_1\r
+        vlan_tag_list:\r
+          get_input: untrusted_vlan_tags\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        vmac_address:\r
+          get_input: vdbe_untrusted_vmac_address\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_ip_prefix_len\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - suport_missing_vlan_tag_property\r
+      - control_int_net\r
+      - subport_get_param_parent\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0b11d60
--- /dev/null
@@ -0,0 +1,319 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/nested3ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/nested3ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..55f11b0
--- /dev/null
@@ -0,0 +1,198 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested3\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport_missing_vlan_tag:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          virtual_machine_interface_properties_sub_interface_vlan_tag_INVALID:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+        - get_input: mac_address\r
+  groups:\r
+    nested3_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested3.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested3\r
+    capabilities:\r
+      forwarder_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - forwarder\r
+      network.outgoing.bytes.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.packets.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.incoming.packets.rate\r
+      feature_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - feature\r
+      network.outpoing.packets_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.outpoing.packets\r
+      network.outgoing.packets.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.outgoing.packets.rate\r
+      binding_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - binding\r
+      network.outgoing.bytes_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.outgoing.bytes\r
+      network.incoming.bytes.rate_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.incoming.packets\r
+      network.incoming.bytes_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - network.incoming.bytes\r
+    requirements:\r
+      dependency_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - dependency\r
+      binding_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - binding\r
+      link_vdbe_untr_x_subport_missing_vlan_tag:\r
+      - vdbe_untr_x_subport_missing_vlan_tag\r
+      - link\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/notBoundToParentPort/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..933718f
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - link\r
+      dependency_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - dependency\r
+      binding_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/main.yml
new file mode 100644 (file)
index 0000000..588d981
--- /dev/null
@@ -0,0 +1,226 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port}
+  vdbe_untr_1_port:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+
+  vdbe_untr_1_subports:
+    type: nested.yml
+    properties:
+      aap_address_mode:
+        get_param: aap_address_mode
+      aap_sec_untrusted_ip_prefix:
+        get_param: vdbe_aap_sec_untrusted_ip_prefix
+      aap_sec_untrusted_ip_prefix_len:
+        get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+      aap_untrusted_ip_prefix:
+        get_param: vdbe_aap_untrusted_ip_prefix
+      aap_untrusted_ip_prefix_len:
+        get_param: vdbe_aap_untrusted_ip_prefix_len
+      aap_untrusted_v6_ip_prefix:
+        get_param: vdbe_aap_untrusted_v6_ip_prefix
+      aap_untrusted_v6_ip_prefix_len:
+        get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+      counter: 5
+      ip_address:
+        get_param: vdbe_untrusted_ip_1
+      ip_v6_address:
+        get_param: vdbe_untrusted_v6_ip_1
+      mac_address:
+        get_param: vdbe_hw_untr_mac_1
+      parent_interface:
+        get_resource: vdbe_untr_1_port
+      subinterfaces_name_prefix:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      vlan_tag_list:
+        get_param: untrusted_vlan_tags
+      vmac_address:
+        get_param: vdbe_untrusted_vmac_address
+      vn_network_list:
+         get_param: untrusted_vn_networks
+
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/in/nested.yml
new file mode 100644 (file)
index 0000000..4462e24
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..89fa455
--- /dev/null
@@ -0,0 +1,676 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_nested_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      subinterface_nested_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_nested_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_nested_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d1dcbbf
--- /dev/null
@@ -0,0 +1,485 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_num_vn\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_nested_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_nested_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_nested_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_nested_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_nested_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        subinterface_nested_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_nested_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_nested_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_nested_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_nested_counter:\r
+        - 5\r
+        subinterface_nested_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..80e7aee
--- /dev/null
@@ -0,0 +1,490 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_nested_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    subinterface_nested_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    subinterface_nested_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_nested_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_nested_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_nested_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe_vdbe_untr_1_port_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_nested_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_nested_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_nested_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_nested_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_nested_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_nested_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_nested_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_nested_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_nested_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_nested_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature_vdbe_untr_x_subport\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - link_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/regularNestedSubInterface/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d70a184
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - link\r
+      dependency_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - dependency\r
+      binding_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/main.yml
new file mode 100644 (file)
index 0000000..973b7f5
--- /dev/null
@@ -0,0 +1,268 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  fabric_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the fabric virtual network"
+    type: boolean
+  fabric_int_net_forwarding_mode:
+    description: "forwarding mode of the fabric virtual network"
+    type: string
+  fabric_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the fabric virtual network"
+    type: string
+  fabric_int_net_shared:
+    description: "fabric virtual network shared"
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+  counter:
+    description: "Counter."
+    type: number
+
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        {get_attr: [vdbe_untr_1_subports, aap_address_mode]}
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port}
+  vdbe_untr_1_port:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: fabric_int_net
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: counter
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            {get_attr: [control_int_net, fq_name]}
+          vdbe_subport_network:
+            get_resource: control_int_net
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
+  fabric_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: fabric_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: fabric_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: {get_attr: [vdbe_untr_1_subports, vlan_tag_list]}
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: fabric_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: fabric_int_net_rpf
+
+outputs:
+  out1:
+      description: output param connectivity
+      value: {get_attr: [vdbe_untr_1_subports, aap_address_mode]}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/in/nested.yml
new file mode 100644 (file)
index 0000000..7acae91
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vdbe_subport_network:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vdbe_subport_network}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..a60e6c2
--- /dev/null
@@ -0,0 +1,687 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.vdbe:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      subinterface_nested_parent_interface:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_aap_address_mode:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_vlan_tag_list:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      subinterface_nested_aap_untrusted_v6_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      untrusted_num_vn:
+        type: float
+        description: Number of vDBE subinterface virtual Networks
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 1
+          - 77
+      subinterface_nested_aap_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_vdbe_subport_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_aap_sec_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_aap_sec_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_aap_untrusted_v6_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_vdbe_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      subinterface_nested_mac_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_untr_1_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      subinterface_nested_ip_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_ip_v6_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      subinterface_nested_vmac_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+      subinterface_nested_aap_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_counter:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: float
+      subinterface_nested_subinterfaces_name_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_vdbe_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+    attributes:
+      vdbe_vdbe_untr_1_port_nested_aap_address_mode:
+        type: string
+        status: SUPPORTED
+      vdbe_vdbe_untr_1_port_nested_vlan_tag_list:
+        type: list
+        status: SUPPORTED
+        entry_schema: &id001
+          type: string
+    requirements:
+    - dependency_vdbe_vdbe_untr_1_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_vdbe:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_vdbe_untr_1_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_untr_1_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_vdbe:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_vdbe:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vdbe_vdbe_untr_1_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_vdbe:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vdbe_vdbe_untr_1_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vdbe_vdbe_untr_1_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_vdbe:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_vdbe:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vdbe:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      aap_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_sec_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      vdbe_subport_network:
+        type: string
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+        required: true
+        status: SUPPORTED
+      ip_v6_address:
+        type: string
+        description: IPv6 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      counter:
+        type: float
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+        required: true
+        status: SUPPORTED
+      subinterfaces_name_prefix:
+        type: string
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+        required: true
+        status: SUPPORTED
+      ip_address:
+        type: string
+        description: IPv4 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      aap_address_mode:
+        type: string
+        description: Address mode for the vDBE cluster IP
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix:
+        type: string
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      parent_interface:
+        type: string
+        description: Parent Contrail interface
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        description: HW MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      vlan_tag_list:
+        type: list
+        description: List of VLAN IDs to use for subinterfaces
+        required: true
+        status: SUPPORTED
+        entry_schema: *id001
+      aap_sec_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      vmac_address:
+        type: string
+        description: virtual MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix_len:
+        type: string
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_vdbe_untr_x_subport:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_untr_x_subport:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_vdbe_untr_x_subport:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_vdbe_untr_x_subport:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..817d62f
--- /dev/null
@@ -0,0 +1,556 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    vf_module_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vf_module_id
+      type: string
+      description: Unique ID for this VF module inst
+    fabric_int_net_rpf:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: fabric_int_net_rpf
+      type: string
+      description: Reverse Path Filtering enable or disable for the fabric virtual network
+    control_int_net_rpf:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_rpf
+      type: string
+      description: Reverse Path Filtering enable or disable for the control virtual network
+    control_int_net_forwarding_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_forwarding_mode
+      type: string
+      description: forwarding mode of the control virtual network
+    vnf_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vnf_name
+      type: string
+      description: Unique name for this VF instance
+    vdbe_untrusted_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_untrusted_ip_1
+      type: string
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: aap_address_mode
+      type: string
+      description: Address mode for the vDBE cluster IP
+    control_int_net_shared:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_shared
+      type: boolean
+      description: control virtual network shared
+    vdbe_untrusted_v6_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_untrusted_v6_ip_1
+      type: string
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_untrusted_vmac_address:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_untrusted_vmac_address
+      type: string
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network
+    control_int_net_flood_unknown_unicast:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_flood_unknown_unicast
+      type: boolean
+      description: forwarding mode of the control virtual network
+    vdbe_aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_sec_untrusted_ip_prefix
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    vnf_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vnf_id
+      type: string
+      description: Unique ID for this VF inst
+    vdbe_name_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_name_1
+      type: string
+      description: VM Name for this vdbe node 1
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: availability_zone_1
+      type: string
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.
+    untrusted_vn_networks:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: untrusted_vn_networks
+      type: list
+      description: List of subinterface virtual networks
+      entry_schema:
+        type: string
+    vdbe_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_image_name
+      type: string
+      description: Image to use for vDBE
+    oam_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: Name of NSDNet network from which the management IP addresses will be allocated
+    vdbe_aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vdbe_aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_v6_ip_prefix
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    vdbe_aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    fabric_int_net_flood_unknown_unicast:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: fabric_int_net_flood_unknown_unicast
+      type: boolean
+      description: forwarding mode of the fabric virtual network
+    untrusted_vlan_tags:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: untrusted_vlan_tags
+      type: list
+      description: List of subinterface vlan tags
+      entry_schema:
+        type: string
+    vdbe_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_flavor_name
+      type: string
+      description: Flavor to use for vDBE
+    counter:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: counter
+      type: float
+      description: Counter.
+    fabric_int_net_forwarding_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: fabric_int_net_forwarding_mode
+      type: string
+      description: forwarding mode of the fabric virtual network
+    fabric_int_net_shared:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: fabric_int_net_shared
+      description: fabric virtual network shared
+    vdbe_hw_untr_mac_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_hw_untr_mac_1
+      type: string
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network
+    untrusted_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: untrusted_net_name
+      type: string
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed
+    vdbe_device_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_device_name
+      type: string
+      description: VDBE device Name for this vdbe VNF
+    vdbe_aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_ip_prefix
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+  node_templates:
+    fabric_int_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          str_replace:
+            template:
+              get_attribute:
+              - abstract_vdbe
+              - vdbe_vdbe_untr_1_port_nested_vlan_tag_list
+            params:
+              VNF_NAME:
+                get_input: vnf_name
+    control_int_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          str_replace:
+            template: VNF_NAME_control_net
+            params:
+              VNF_NAME:
+                get_input: vnf_name
+    abstract_vdbe:
+      type: org.openecomp.resource.abstract.nodes.vdbe
+      directives:
+      - substitutable
+      properties:
+        subinterface_nested_parent_interface:
+        - vdbe_untr_1_port
+        subinterface_nested_aap_address_mode:
+        - get_input: aap_address_mode
+        subinterface_nested_vlan_tag_list:
+        - get_input: untrusted_vlan_tags
+        subinterface_nested_aap_untrusted_v6_ip_prefix_len:
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+        vm_flavor_name:
+          get_input: vdbe_flavor_name
+        subinterface_nested_aap_untrusted_ip_prefix:
+        - get_input: vdbe_aap_untrusted_ip_prefix
+        vm_image_name:
+          get_input: vdbe_image_name
+        subinterface_nested_vdbe_subport_network:
+        - control_int_net
+        subinterface_nested_aap_sec_untrusted_ip_prefix_len:
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+        subinterface_nested_aap_sec_untrusted_ip_prefix:
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix
+        subinterface_nested_aap_untrusted_v6_ip_prefix:
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix
+        compute_vdbe_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+        subinterface_nested_mac_address:
+        - get_input: vdbe_hw_untr_mac_1
+        port_vdbe_untr_1_port_virtual_network_refs:
+        - - fabric_int_net
+        subinterface_nested_ip_address:
+        - get_input: vdbe_untrusted_ip_1
+        subinterface_nested_ip_v6_address:
+        - get_input: vdbe_untrusted_v6_ip_1
+        subinterface_nested_vmac_address:
+        - get_attribute:
+          - control_int_net
+          - fq_name
+        port_vdbe_untr_1_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        subinterface_nested_aap_untrusted_ip_prefix_len:
+        - get_input: vdbe_aap_untrusted_ip_prefix_len
+        subinterface_nested_counter:
+        - get_input: counter
+        subinterface_nested_subinterfaces_name_prefix:
+        - str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        compute_vdbe_name:
+        - get_input: vdbe_name_1
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:
+        - - get_input: vdbe_hw_untr_mac_1
+        service_template_filter:
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_vdbe_vdbe_untr_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_int_net
+          relationship: tosca.relationships.network.LinksTo
+      - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: control_int_net
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: |
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+      members:
+      - fabric_int_net
+      - control_int_net
+      - abstract_vdbe
+  outputs:
+    out1:
+      description: output param connectivity
+      value:
+        get_attribute:
+        - abstract_vdbe
+        - vdbe_vdbe_untr_1_port_nested_aap_address_mode
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9cc4285
--- /dev/null
@@ -0,0 +1,512 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_vdbe
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    subinterface_nested_parent_interface:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_aap_address_mode:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_vlan_tag_list:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    subinterface_nested_aap_untrusted_v6_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_flavor_name:
+      type: string
+      required: true
+    untrusted_num_vn:
+      hidden: false
+      immutable: false
+      type: float
+      description: Number of vDBE subinterface virtual Networks
+      constraints:
+      - in_range:
+        - 1
+        - 77
+    subinterface_nested_aap_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_image_name:
+      type: string
+      required: true
+    port_vdbe_untr_1_port_network_role:
+      type: string
+      required: true
+    subinterface_nested_vdbe_subport_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_aap_sec_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_aap_sec_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_aap_untrusted_v6_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_vdbe_metadata:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    subinterface_nested_mac_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_untr_1_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    subinterface_nested_ip_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_ip_v6_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_untr_1_port_order:
+      type: integer
+      required: true
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    subinterface_nested_vmac_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_untr_1_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_untr_1_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+    subinterface_nested_aap_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_counter:
+      type: list
+      required: true
+      entry_schema:
+        type: float
+    subinterface_nested_subinterfaces_name_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_vdbe_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_network_role_tag:
+      type: string
+      required: true
+    port_vdbe_untr_1_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+  node_templates:
+    vdbe_vdbe_untr_1_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        aap_untrusted_ip_prefix:
+          get_input:
+          - subinterface_nested_aap_untrusted_ip_prefix
+          - index_value
+        aap_sec_untrusted_ip_prefix:
+          get_input:
+          - subinterface_nested_aap_sec_untrusted_ip_prefix
+          - index_value
+        vdbe_subport_network:
+          get_input:
+          - subinterface_nested_vdbe_subport_network
+          - index_value
+        ip_v6_address:
+          get_input:
+          - subinterface_nested_ip_v6_address
+          - index_value
+        counter:
+          get_input:
+          - subinterface_nested_counter
+          - index_value
+        ip_address:
+          get_input:
+          - subinterface_nested_ip_address
+          - index_value
+        subinterfaces_name_prefix:
+          get_input:
+          - subinterface_nested_subinterfaces_name_prefix
+          - index_value
+        aap_address_mode:
+          get_input:
+          - subinterface_nested_aap_address_mode
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count:
+            get_input: untrusted_num_vn
+          mandatory: false
+        aap_untrusted_v6_ip_prefix:
+          get_input:
+          - subinterface_nested_aap_untrusted_v6_ip_prefix
+          - index_value
+        parent_interface:
+          get_input:
+          - subinterface_nested_parent_interface
+          - index_value
+        mac_address:
+          get_input:
+          - subinterface_nested_mac_address
+          - index_value
+        vlan_tag_list:
+          get_input:
+          - subinterface_nested_vlan_tag_list
+          - index_value
+        aap_sec_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_nested_aap_sec_untrusted_ip_prefix_len
+          - index_value
+        vmac_address:
+          get_input:
+          - subinterface_nested_vmac_address
+          - index_value
+        aap_untrusted_v6_ip_prefix_len:
+          get_input:
+          - subinterface_nested_aap_untrusted_v6_ip_prefix_len
+          - index_value
+        aap_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_nested_aap_untrusted_ip_prefix_len
+          - index_value
+      requirements:
+      - binding_vdbe_untr_x_subport:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_vdbe_untr_1_port
+          relationship: tosca.relationships.network.BindsTo
+    vdbe:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe
+      properties:
+        availability_zone:
+          get_attribute:
+          - vdbe_vdbe_untr_1_port_nested
+          - aap_address_mode
+        flavor:
+          get_input: vm_flavor_name
+        metadata:
+          get_input:
+          - compute_vdbe_metadata
+          - index_value
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_vdbe_name
+          - index_value
+    vdbe_vdbe_untr_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_untr_1_port_mac_requirements
+        order:
+          get_input: port_vdbe_untr_1_port_order
+        exCP_naming:
+          get_input: port_vdbe_untr_1_port_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_vdbe_untr_1_port_vlan_requirements
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_untr_1_port_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_untr_1_port_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_untr_1_port_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_untr_1_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_untr_1_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_untr_1_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+  outputs:
+    vdbe_vdbe_untr_1_port_nested_aap_address_mode:
+      type: string
+      value:
+        get_attribute:
+        - vdbe_vdbe_untr_1_port_nested
+        - aap_address_mode
+    vdbe_vdbe_untr_1_port_nested_vlan_tag_list:
+      type: list
+      value:
+        get_attribute:
+        - vdbe_vdbe_untr_1_port_nested
+        - vlan_tag_list
+      entry_schema:
+        type: string
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.vdbe
+    capabilities:
+      feature_vdbe:
+      - vdbe
+      - feature
+      disk.device.iops_vdbe:
+      - vdbe
+      - disk.device.iops
+      endpoint_vdbe:
+      - vdbe
+      - endpoint
+      disk.ephemeral.size_vdbe:
+      - vdbe
+      - disk.ephemeral.size
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:
+      - vdbe_vdbe_untr_1_port_nested
+      - feature_vdbe_untr_x_subport
+      cpu_util_vdbe:
+      - vdbe
+      - cpu_util
+      vcpus_vdbe:
+      - vdbe
+      - vcpus
+      disk.write.requests_vdbe:
+      - vdbe
+      - disk.write.requests
+      disk.device.latency_vdbe:
+      - vdbe
+      - disk.device.latency
+      disk.device.write.requests.rate_vdbe:
+      - vdbe
+      - disk.device.write.requests.rate
+      feature_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - feature
+      disk.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.write.bytes.rate
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.bytes.rate
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.packets.rate
+      scalable_vdbe:
+      - vdbe
+      - scalable
+      disk.iops_vdbe:
+      - vdbe
+      - disk.iops
+      disk.device.write.requests_vdbe:
+      - vdbe
+      - disk.device.write.requests
+      disk.device.capacity_vdbe:
+      - vdbe
+      - disk.device.capacity
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outgoing.bytes
+      disk.device.allocation_vdbe:
+      - vdbe
+      - disk.device.allocation
+      disk.usage_vdbe:
+      - vdbe
+      - disk.usage
+      memory.usage_vdbe:
+      - vdbe
+      - memory.usage
+      disk.read.requests_vdbe:
+      - vdbe
+      - disk.read.requests
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.bytes
+      instance_vdbe:
+      - vdbe
+      - instance
+      cpu.delta_vdbe:
+      - vdbe
+      - cpu.delta
+      binding_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - binding
+      disk.device.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.read.bytes.rate
+      disk.device.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.write.bytes.rate
+      memory.resident_vdbe:
+      - vdbe
+      - memory.resident
+      forwarder_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - forwarder
+      feature_vdbe_vdbe_untr_1_port_nested:
+      - vdbe_vdbe_untr_1_port_nested
+      - feature
+      disk.write.requests.rate_vdbe:
+      - vdbe
+      - disk.write.requests.rate
+      cpu_vdbe:
+      - vdbe
+      - cpu
+      disk.write.bytes_vdbe:
+      - vdbe
+      - disk.write.bytes
+      disk.device.usage_vdbe:
+      - vdbe
+      - disk.device.usage
+      disk.device.read.bytes_vdbe:
+      - vdbe
+      - disk.device.read.bytes
+      disk.latency_vdbe:
+      - vdbe
+      - disk.latency
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outgoing.packets.rate
+      disk.capacity_vdbe:
+      - vdbe
+      - disk.capacity
+      host_vdbe:
+      - vdbe
+      - host
+      disk.allocation_vdbe:
+      - vdbe
+      - disk.allocation
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outpoing.packets
+      network.incoming.packets_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.packets
+      disk.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.read.bytes.rate
+      os_vdbe:
+      - vdbe
+      - os
+      disk.device.read.requests_vdbe:
+      - vdbe
+      - disk.device.read.requests
+      disk.root.size_vdbe:
+      - vdbe
+      - disk.root.size
+      memory_vdbe:
+      - vdbe
+      - memory
+      binding_vdbe:
+      - vdbe
+      - binding
+      disk.device.write.bytes_vdbe:
+      - vdbe
+      - disk.device.write.bytes
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outgoing.bytes.rate
+      disk.device.read.requests.rate_vdbe:
+      - vdbe
+      - disk.device.read.requests.rate
+      disk.read.bytes_vdbe:
+      - vdbe
+      - disk.read.bytes
+    requirements:
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:
+      - vdbe_vdbe_untr_1_port_nested
+      - link_vdbe_untr_x_subport
+      dependency_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - dependency
+      local_storage_vdbe:
+      - vdbe
+      - local_storage
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:
+      - vdbe_vdbe_untr_1_port_nested
+      - dependency_vdbe_untr_x_subport
+      dependency_vdbe_vdbe_untr_1_port_nested:
+      - vdbe_vdbe_untr_1_port_nested
+      - dependency
+      link_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - link
+      dependency_vdbe:
+      - vdbe
+      - dependency
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceGetAttrInOut/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..ae6961c
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vdbe_subport_network:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vdbe_subport_network\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - link\r
+      dependency_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - dependency\r
+      binding_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/main.yml
new file mode 100644 (file)
index 0000000..995b968
--- /dev/null
@@ -0,0 +1,264 @@
+heat_template_version: 2013-05-23\r
+\r
+description: >\r
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+\r
+parameters:\r
+  aap_address_mode:\r
+    description: "Address mode for the vDBE cluster IP"\r
+    type: string\r
+  control_int_net_forwarding_mode:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: string\r
+  control_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the control virtual network"\r
+    type: string\r
+  control_int_net_shared:\r
+    description: "control virtual network shared"\r
+    type: boolean\r
+  control_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: boolean\r
+  fabric_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: boolean\r
+  fabric_int_net_forwarding_mode:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_shared:\r
+    description: "fabric virtual network shared"\r
+  oam_net_name:\r
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"\r
+    type: string\r
+  untrusted_net_name:\r
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"\r
+    type: string\r
+  untrusted_num_vn:\r
+    constraints:\r
+      -\r
+        range:\r
+          max: 77\r
+          min: 1\r
+    description: "Number of vDBE subinterface virtual Networks"\r
+    type: number\r
+  untrusted_vlan_tags:\r
+    description: "List of subinterface vlan tags"\r
+    type: comma_delimited_list\r
+  untrusted_vn_networks:\r
+    description: "List of subinterface virtual networks"\r
+    type: comma_delimited_list\r
+  vdbe_aap_sec_untrusted_ip_prefix:\r
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_sec_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix:\r
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix:\r
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix_len:\r
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_device_name:\r
+    description: "VDBE device Name for this vdbe VNF"\r
+    type: string\r
+  vdbe_hw_untr_mac_1:\r
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_name_1:\r
+    description: "VM Name for this vdbe node 1"\r
+    type: string\r
+  vdbe_untrusted_ip_1:\r
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_v6_ip_1:\r
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_vmac_address:\r
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_flavor_name:\r
+    description: "Flavor to use for vDBE"\r
+    type: string\r
+  vdbe_image_name:\r
+    description: "Image to use for vDBE"\r
+    type: string\r
+  vnf_id:\r
+    description: "Unique ID for this VF inst"\r
+    type: string\r
+  vnf_name:\r
+    description: "Unique name for this VF instance"\r
+    type: string\r
+  vf_module_id:\r
+    description: "Unique ID for this VF module inst"\r
+    type: string\r
+  availability_zone_1:\r
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."\r
+    type: string\r
+  counter:\r
+    description: "Counter."\r
+    type: number\r
+\r
+resources:\r
+  vdbe_node_1:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      availability_zone:\r
+        get_param: availability_zone_1\r
+      flavor:\r
+        get_param: vdbe_flavor_name\r
+      image:\r
+        get_param: vdbe_image_name\r
+      metadata:\r
+        vf_module_id:\r
+          get_param: vf_module_id\r
+        vnf_id:\r
+          get_param: vnf_id\r
+        vnf_name:\r
+          get_param: vnf_name\r
+      name:\r
+        get_param: vdbe_name_1\r
+      networks:\r
+        - port: {get_resource: vdbe_untr_1_port}\r
+  vdbe_untr_1_port:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            DBE:\r
+              get_param: vdbe_device_name\r
+            VM_NAME:\r
+              get_param: vdbe_name_1\r
+          template: VM_NAMEDBE001p1n004\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: fabric_int_net\r
+  vdbe_untr_1_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count:\r
+        get_param: untrusted_num_vn\r
+      resource_def:\r
+        type: nested.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_1_port\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vdbe_subport_network:\r
+            get_resource: control_int_net\r
+  control_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: control_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: control_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: VNF_NAME_control_net\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: control_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: control_int_net_rpf\r
+  fabric_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    depends_on: vdbe_untr_1_subports\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: fabric_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: fabric_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: VNF_NAME_fabric_net\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: fabric_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: fabric_int_net_rpf\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/in/nested.yml
new file mode 100644 (file)
index 0000000..7acae91
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vdbe_subport_network:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vdbe_subport_network}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..b1b43a7
--- /dev/null
@@ -0,0 +1,685 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_nested_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_nested_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_vdbe_subport_network:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      subinterface_nested_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_nested_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_nested_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vdbe_subport_network:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..1b6a863
--- /dev/null
@@ -0,0 +1,551 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    fabric_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the fabric virtual network\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    fabric_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the fabric virtual network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    fabric_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the fabric virtual network\r
+    fabric_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_shared\r
+      description: fabric virtual network shared\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    fabric_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_fabric_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+      requirements:\r
+      - dependency:\r
+          capability: feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested\r
+          node: abstract_vdbe\r
+          relationship: tosca.relationships.DependsOn\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_nested_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_nested_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_nested_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_nested_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        subinterface_nested_vdbe_subport_network:\r
+        - control_int_net\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_nested_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - fabric_int_net\r
+        subinterface_nested_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_nested_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_nested_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_nested_counter:\r
+        - get_input: counter\r
+        subinterface_nested_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: fabric_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - fabric_int_net\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..41ac5c1
--- /dev/null
@@ -0,0 +1,502 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_nested_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_nested_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    subinterface_nested_vdbe_subport_network:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    subinterface_nested_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_nested_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_nested_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_nested_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe_vdbe_untr_1_port_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        vdbe_subport_network:\r
+          get_input:\r
+          - subinterface_nested_vdbe_subport_network\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_nested_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_nested_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_nested_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_nested_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_nested_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_nested_parent_interface\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_nested_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_nested_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_nested_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature_vdbe_untr_x_subport\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - link_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedIn/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..ae6961c
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vdbe_subport_network:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vdbe_subport_network\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - link\r
+      dependency_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - dependency\r
+      binding_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/main.yml
new file mode 100644 (file)
index 0000000..8ac7be5
--- /dev/null
@@ -0,0 +1,230 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port}
+  vdbe_untr_1_port:
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+    type: OS::ContrailV2::VirtualMachineInterface
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    depends_on: control_int_net
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: "%index%"
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vdbe_subport_network:
+            get_resource: control_int_net
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/in/nested.yml
new file mode 100644 (file)
index 0000000..7acae91
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vdbe_subport_network:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vdbe_subport_network}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..5eaf8f0
--- /dev/null
@@ -0,0 +1,679 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_nested_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_nested_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_vdbe_subport_network:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      subinterface_nested_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_nested_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vdbe_subport_network:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4962899
--- /dev/null
@@ -0,0 +1,474 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_nested_parent_interface:\r
+        - vdbe_untr_1_port\r
+        subinterface_nested_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        subinterface_nested_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_nested_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        subinterface_nested_vdbe_subport_network:\r
+        - control_int_net\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_nested_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        subinterface_nested_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_nested_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_nested_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_nested_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 1\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - dependency_vdbe_vdbe_untr_1_port_nested:\r
+          capability: tosca.capabilities.Node\r
+          node: control_int_net\r
+          relationship: tosca.relationships.DependsOn\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7497b3f
--- /dev/null
@@ -0,0 +1,498 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_nested_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_nested_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    subinterface_nested_vdbe_subport_network:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    subinterface_nested_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_nested_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_nested_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe_vdbe_untr_1_port_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        vdbe_subport_network:\r
+          get_input:\r
+          - subinterface_nested_vdbe_subport_network\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_nested_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_nested_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_nested_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_nested_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_nested_parent_interface\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_nested_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_nested_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_nested_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature_vdbe_untr_x_subport\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      feature_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - feature\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      link_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - link_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_untr_x_subport_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency_vdbe_untr_x_subport\r
+      dependency_vdbe_vdbe_untr_1_port_nested:\r
+      - vdbe_vdbe_untr_1_port_nested\r
+      - dependency\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/subInterfaceNodesConnectedOut/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..ae6961c
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vdbe_subport_network:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vdbe_subport_network\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - link\r
+      dependency_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - dependency\r
+      binding_vdbe_untr_x_subport:\r
+      - vdbe_untr_x_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..2222942
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "vlan1.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/main.yml
new file mode 100644 (file)
index 0000000..d4590c8
--- /dev/null
@@ -0,0 +1,483 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  fabric_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the fabric virtual network"
+    type: boolean
+  fabric_int_net_forwarding_mode:
+    description: "forwarding mode of the fabric virtual network"
+    type: string
+  fabric_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the fabric virtual network"
+    type: string
+  fabric_int_net_shared:
+    description: "fabric virtual network shared"
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+  counter:
+    description: "Counter."
+    type: number
+resources:
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    depends_on: control_int_net
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: vlan1.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: counter
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port_1
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            {get_attr: [vdbe_node_1, accessIPv4]}
+          vn_network_list:
+             get_resource: control_int_net
+          optional_property_1: OPTIONAL_VALUE_SUBPORT_1
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port_1}
+        - port: {get_resource: vdbe_untr_2_port_1}
+  vdbe_node_2:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_1_port_2}
+        - port: {get_resource: vdbe_untr_2_port_2}
+  vdbe_untr_1_port_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+                get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+  vdbe_untr_2_port_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name: Port_2
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: fabric_int_net
+
+
+
+  vdbe_untr_1_port_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: Port 3
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+  vdbe_untr_2_port_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name: Port_4
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: fabric_int_net
+
+  vdbe_untr_2_subports:
+    type: OS::Heat::ResourceGroup
+    depends_on: control_int_net
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: vlan1.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: counter
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_1_port_2
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            {get_attr: [vdbe_node_1, accessIPv4]}
+          vn_network_list:
+             get_resource: control_int_net
+          optional_property_2: OPTIONAL_VALUE_SUBPORT_2
+
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
+  fabric_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    depends_on:
+    - vdbe_untr_1_subports
+    - vdbe_untr_2_subports
+    properties:
+      flood_unknown_unicast:
+        get_param: fabric_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: fabric_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: template-fabric-int
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: fabric_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: fabric_int_net_rpf
+
+outputs:
+  out1:
+      description: output param connectivity
+      value: {get_attr: [vdbe_untr_1_subports, aap_address_mode]}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/vlan1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/in/vlan1.yml
new file mode 100644 (file)
index 0000000..2c180dd
--- /dev/null
@@ -0,0 +1,123 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+  optional_property_1:
+    description: "Optional property"
+    type: string
+  optional_property_2:
+    description: "Optional property"
+    type: string
+
+resources:
+  vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..5d6c575
--- /dev/null
@@ -0,0 +1,841 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.vdbe:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vlan1_ip_v6_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_vdbe_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vlan1_aap_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_untr_2_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_2_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      untrusted_num_vn:
+        type: float
+        description: Number of vDBE subinterface virtual Networks
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 1
+          - 77
+      subinterface_vlan1_counter:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: float
+      subinterface_vlan1_subinterfaces_name_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_2_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_2_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_vdbe_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_untr_1_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vdbe_untr_2_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vdbe_untr_2_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      subinterface_vlan1_vn_network_list:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_2_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_2_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_2_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vdbe_untr_1_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      subinterface_vlan1_parent_interface:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vlan1_aap_address_mode:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      port_vdbe_untr_1_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vlan1_optional_property_1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_2_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      subinterface_vlan1_optional_property_2:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vlan1_mac_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vlan1_aap_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vlan1_ip_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+      compute_vdbe_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_1_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_1_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      subinterface_vlan1_vlan_tag_list:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+    attributes:
+      vdbe_vdbe_untr_1_port_vlan1_aap_address_mode:
+        type: string
+        status: SUPPORTED
+    requirements:
+    - dependency_vdbe:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_vdbe:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_vdbe_untr_2_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_untr_2_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_untr_1_port_vlan1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_untr_1_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_untr_1_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_vdbe:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_vdbe:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vdbe_vdbe_untr_2_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vdbe_vdbe_untr_1_port_vlan1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vdbe_vdbe_untr_1_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_vdbe:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vdbe_vdbe_untr_1_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_vdbe:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_vdbe:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vdbe_vdbe_untr_2_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vdbe:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      aap_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_sec_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      ip_v6_address:
+        type: string
+        description: IPv6 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      counter:
+        type: float
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+        required: true
+        status: SUPPORTED
+      subinterfaces_name_prefix:
+        type: string
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+        required: true
+        status: SUPPORTED
+      ip_address:
+        type: string
+        description: IPv4 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      aap_address_mode:
+        type: string
+        description: Address mode for the vDBE cluster IP
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix:
+        type: string
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      parent_interface:
+        type: string
+        description: Parent Contrail interface
+        required: true
+        status: SUPPORTED
+      vn_network_list:
+        type: string
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+        required: true
+        status: SUPPORTED
+      optional_property_1:
+        type: string
+        description: Optional property
+        required: true
+        status: SUPPORTED
+      optional_property_2:
+        type: string
+        description: Optional property
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        description: HW MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      vlan_tag_list:
+        type: list
+        description: List of VLAN IDs to use for subinterfaces
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      aap_sec_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      vmac_address:
+        type: string
+        description: virtual MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix_len:
+        type: string
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..79d5d3a
--- /dev/null
@@ -0,0 +1,617 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    fabric_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the fabric virtual network\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    fabric_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the fabric virtual network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    fabric_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the fabric virtual network\r
+    fabric_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_shared\r
+      description: fabric virtual network shared\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    fabric_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: template-fabric-int\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+      requirements:\r
+      - dependency:\r
+          capability: feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1\r
+          node: abstract_vdbe\r
+          relationship: tosca.relationships.DependsOn\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        subinterface_vlan1_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        - get_input: availability_zone_1\r
+        subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        port_vdbe_untr_2_port_virtual_network_refs:\r
+        - - fabric_int_net\r
+        - - fabric_int_net\r
+        subinterface_vlan1_counter:\r
+        - get_input: counter\r
+        - get_input: counter\r
+        subinterface_vlan1_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        port_vdbe_untr_2_port_name:\r
+        - Port_2\r
+        - Port_4\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        - - control_int_net\r
+        subinterface_vlan1_vn_network_list:\r
+        - control_int_net\r
+        - control_int_net\r
+        subinterface_vlan1_parent_interface:\r
+        - vdbe_untr_1_port_1\r
+        - vdbe_untr_1_port_2\r
+        subinterface_vlan1_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        - get_input: aap_address_mode\r
+        subinterface_vlan1_optional_property_1:\r
+        - OPTIONAL_VALUE_SUBPORT_1\r
+        - null\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: Port 3\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan1_optional_property_2:\r
+        - null\r
+        - OPTIONAL_VALUE_SUBPORT_2\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_vlan1_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan1_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        - get_input: vdbe_untrusted_ip_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        - get_input: vdbe_name_1\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        - get_input: untrusted_vlan_tags\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_vdbe_untr_2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: fabric_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+          capability: tosca.capabilities.Node\r
+          node: control_int_net\r
+          relationship: tosca.relationships.DependsOn\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - fabric_int_net\r
+      - control_int_net\r
+      - abstract_vdbe\r
+  outputs:\r
+    out1:\r
+      description: output param connectivity\r
+      value:\r
+        get_attribute:\r
+        - abstract_vdbe\r
+        - vdbe_vdbe_untr_1_port_vlan1_aap_address_mode\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..6f5f545
--- /dev/null
@@ -0,0 +1,647 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_vdbe
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vlan1_ip_v6_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_vdbe_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vlan1_aap_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_untr_2_port_network_role_tag:
+      type: string
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_vdbe_untr_2_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    untrusted_num_vn:
+      hidden: false
+      immutable: false
+      type: float
+      description: Number of vDBE subinterface virtual Networks
+      constraints:
+      - in_range:
+        - 1
+        - 77
+    subinterface_vlan1_counter:
+      type: list
+      required: true
+      entry_schema:
+        type: float
+    subinterface_vlan1_subinterfaces_name_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    vm_image_name:
+      type: string
+      required: true
+    port_vdbe_untr_1_port_network_role:
+      type: string
+      required: true
+    port_vdbe_untr_2_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_2_port_network_role:
+      type: string
+      required: true
+    compute_vdbe_metadata:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_untr_1_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vdbe_untr_2_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vdbe_untr_2_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    subinterface_vlan1_vn_network_list:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_2_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_untr_2_port_order:
+      type: integer
+      required: true
+    port_vdbe_untr_2_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vdbe_untr_1_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_untr_1_port_order:
+      type: integer
+      required: true
+    subinterface_vlan1_parent_interface:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vlan1_aap_address_mode:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_vdbe_untr_1_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_untr_1_port_subnetpoolid:
+      type: string
+      required: true
+    subinterface_vlan1_optional_property_1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_2_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    subinterface_vlan1_optional_property_2:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vlan1_mac_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vlan1_aap_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vlan1_ip_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+    compute_vdbe_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_1_port_network_role_tag:
+      type: string
+      required: true
+    port_vdbe_untr_1_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    subinterface_vlan1_vlan_tag_list:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+  node_templates:
+    vdbe:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe
+      properties:
+        availability_zone:
+          get_input:
+          - compute_vdbe_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        metadata:
+          get_input:
+          - compute_vdbe_metadata
+          - index_value
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_vdbe_name
+          - index_value
+    vdbe_vdbe_untr_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_untr_2_port_mac_requirements
+        order:
+          get_input: port_vdbe_untr_2_port_order
+        exCP_naming:
+          get_input: port_vdbe_untr_2_port_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_vdbe_untr_2_port_vlan_requirements
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_untr_2_port_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_untr_2_port_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_untr_2_port_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_untr_2_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_untr_2_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_untr_2_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_untr_1_port_vlan1:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1
+      directives:
+      - substitutable
+      properties:
+        aap_untrusted_ip_prefix:
+          get_input:
+          - subinterface_vlan1_aap_untrusted_ip_prefix
+          - index_value
+        aap_sec_untrusted_ip_prefix:
+          get_input:
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix
+          - index_value
+        ip_v6_address:
+          get_input:
+          - subinterface_vlan1_ip_v6_address
+          - index_value
+        counter:
+          get_input:
+          - subinterface_vlan1_counter
+          - index_value
+        ip_address:
+          get_input:
+          - subinterface_vlan1_ip_address
+          - index_value
+        subinterfaces_name_prefix:
+          get_input:
+          - subinterface_vlan1_subinterfaces_name_prefix
+          - index_value
+        aap_address_mode:
+          get_input:
+          - subinterface_vlan1_aap_address_mode
+          - index_value
+        service_template_filter:
+          substitute_service_template: vlan1ServiceTemplate.yaml
+          count:
+            get_input: untrusted_num_vn
+          mandatory: false
+        aap_untrusted_v6_ip_prefix:
+          get_input:
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix
+          - index_value
+        parent_interface:
+          get_input:
+          - subinterface_vlan1_parent_interface
+          - index_value
+        vn_network_list:
+          get_input:
+          - subinterface_vlan1_vn_network_list
+          - index_value
+        optional_property_1:
+          get_input:
+          - subinterface_vlan1_optional_property_1
+          - index_value
+        optional_property_2:
+          get_input:
+          - subinterface_vlan1_optional_property_2
+          - index_value
+        mac_address:
+          get_input:
+          - subinterface_vlan1_mac_address
+          - index_value
+        vlan_tag_list:
+          get_input:
+          - subinterface_vlan1_vlan_tag_list
+          - index_value
+        aap_sec_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix_len
+          - index_value
+        vmac_address:
+          get_attribute:
+          - vdbe
+          - accessIPv4
+        aap_untrusted_v6_ip_prefix_len:
+          get_input:
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix_len
+          - index_value
+        aap_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_vlan1_aap_untrusted_ip_prefix_len
+          - index_value
+      requirements:
+      - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_vdbe_untr_1_port
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_untr_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_untr_1_port_mac_requirements
+        order:
+          get_input: port_vdbe_untr_1_port_order
+        exCP_naming:
+          get_input: port_vdbe_untr_1_port_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_vdbe_untr_1_port_vlan_requirements
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_untr_1_port_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_untr_1_port_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_untr_1_port_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_untr_1_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_untr_1_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_untr_1_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+  outputs:
+    vdbe_vdbe_untr_1_port_vlan1_aap_address_mode:
+      type: string
+      value:
+        get_attribute:
+        - vdbe_vdbe_untr_1_port_vlan1
+        - aap_address_mode
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.vdbe
+    capabilities:
+      feature_vdbe:
+      - vdbe
+      - feature
+      disk.device.iops_vdbe:
+      - vdbe
+      - disk.device.iops
+      endpoint_vdbe:
+      - vdbe
+      - endpoint
+      disk.ephemeral.size_vdbe:
+      - vdbe
+      - disk.ephemeral.size
+      feature_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - feature
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:
+      - vdbe_vdbe_untr_1_port_vlan1
+      - feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport
+      cpu_util_vdbe:
+      - vdbe
+      - cpu_util
+      vcpus_vdbe:
+      - vdbe
+      - vcpus
+      disk.write.requests_vdbe:
+      - vdbe
+      - disk.write.requests
+      feature_vdbe_vdbe_untr_1_port_vlan1:
+      - vdbe_vdbe_untr_1_port_vlan1
+      - feature
+      disk.device.latency_vdbe:
+      - vdbe
+      - disk.device.latency
+      disk.device.write.requests.rate_vdbe:
+      - vdbe
+      - disk.device.write.requests.rate
+      network.incoming.packets_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.incoming.packets
+      feature_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - feature
+      disk.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.write.bytes.rate
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.bytes.rate
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.packets.rate
+      scalable_vdbe:
+      - vdbe
+      - scalable
+      disk.iops_vdbe:
+      - vdbe
+      - disk.iops
+      disk.device.write.requests_vdbe:
+      - vdbe
+      - disk.device.write.requests
+      disk.device.capacity_vdbe:
+      - vdbe
+      - disk.device.capacity
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outgoing.bytes
+      disk.device.allocation_vdbe:
+      - vdbe
+      - disk.device.allocation
+      disk.usage_vdbe:
+      - vdbe
+      - disk.usage
+      memory.usage_vdbe:
+      - vdbe
+      - memory.usage
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.outpoing.packets
+      disk.read.requests_vdbe:
+      - vdbe
+      - disk.read.requests
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.bytes
+      instance_vdbe:
+      - vdbe
+      - instance
+      cpu.delta_vdbe:
+      - vdbe
+      - cpu.delta
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.outgoing.packets.rate
+      binding_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - binding
+      disk.device.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.read.bytes.rate
+      disk.device.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.write.bytes.rate
+      memory.resident_vdbe:
+      - vdbe
+      - memory.resident
+      forwarder_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - forwarder
+      disk.write.requests.rate_vdbe:
+      - vdbe
+      - disk.write.requests.rate
+      cpu_vdbe:
+      - vdbe
+      - cpu
+      disk.write.bytes_vdbe:
+      - vdbe
+      - disk.write.bytes
+      forwarder_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - forwarder
+      disk.device.usage_vdbe:
+      - vdbe
+      - disk.device.usage
+      disk.device.read.bytes_vdbe:
+      - vdbe
+      - disk.device.read.bytes
+      disk.latency_vdbe:
+      - vdbe
+      - disk.latency
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outgoing.packets.rate
+      disk.capacity_vdbe:
+      - vdbe
+      - disk.capacity
+      host_vdbe:
+      - vdbe
+      - host
+      disk.allocation_vdbe:
+      - vdbe
+      - disk.allocation
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outpoing.packets
+      network.incoming.packets_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.incoming.packets
+      disk.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.read.bytes.rate
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.incoming.bytes
+      os_vdbe:
+      - vdbe
+      - os
+      disk.device.read.requests_vdbe:
+      - vdbe
+      - disk.device.read.requests
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.incoming.packets.rate
+      disk.root.size_vdbe:
+      - vdbe
+      - disk.root.size
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.incoming.bytes.rate
+      binding_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - binding
+      memory_vdbe:
+      - vdbe
+      - memory
+      binding_vdbe:
+      - vdbe
+      - binding
+      disk.device.write.bytes_vdbe:
+      - vdbe
+      - disk.device.write.bytes
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - network.outgoing.bytes
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - network.outgoing.bytes.rate
+      disk.device.read.requests.rate_vdbe:
+      - vdbe
+      - disk.device.read.requests.rate
+      disk.read.bytes_vdbe:
+      - vdbe
+      - disk.read.bytes
+    requirements:
+      dependency_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - dependency
+      link_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - link
+      local_storage_vdbe:
+      - vdbe
+      - local_storage
+      dependency_vdbe_vdbe_untr_2_port:
+      - vdbe_vdbe_untr_2_port
+      - dependency
+      dependency_vdbe_vdbe_untr_1_port_vlan1:
+      - vdbe_vdbe_untr_1_port_vlan1
+      - dependency
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:
+      - vdbe_vdbe_untr_1_port_vlan1
+      - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport
+      link_vdbe_vdbe_untr_1_port:
+      - vdbe_vdbe_untr_1_port
+      - link
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:
+      - vdbe_vdbe_untr_1_port_vlan1
+      - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport
+      dependency_vdbe:
+      - vdbe
+      - dependency
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/vlan1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/allConnectivities/out/vlan1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..559263b
--- /dev/null
@@ -0,0 +1,181 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vlan1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    optional_property_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Optional property\r
+    optional_property_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Optional property\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    vlan1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vlan1.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - link\r
+      binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - binding\r
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..89f844a
--- /dev/null
@@ -0,0 +1,22 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "vlan1.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    },
+    {
+      "file": "vlan2.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/main.yml
new file mode 100644 (file)
index 0000000..fae10a6
--- /dev/null
@@ -0,0 +1,561 @@
+heat_template_version: 2013-05-23\r
+\r
+description: >\r
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+\r
+parameters:\r
+  aap_address_mode:\r
+    description: "Address mode for the vDBE cluster IP"\r
+    type: string\r
+  control_int_net_forwarding_mode:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: string\r
+  control_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the control virtual network"\r
+    type: string\r
+  control_int_net_shared:\r
+    description: "control virtual network shared"\r
+    type: boolean\r
+  control_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: boolean\r
+  fabric_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: boolean\r
+  fabric_int_net_forwarding_mode:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_shared:\r
+    description: "fabric virtual network shared"\r
+  oam_net_name:\r
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"\r
+    type: string\r
+  untrusted_net_name:\r
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"\r
+    type: string\r
+  untrusted_num_vn:\r
+    constraints:\r
+      -\r
+        range:\r
+          max: 77\r
+          min: 1\r
+    description: "Number of vDBE subinterface virtual Networks"\r
+    type: number\r
+  untrusted_vlan_tags:\r
+    description: "List of subinterface vlan tags"\r
+    type: comma_delimited_list\r
+  untrusted_vn_networks:\r
+    description: "List of subinterface virtual networks"\r
+    type: comma_delimited_list\r
+  vdbe_aap_sec_untrusted_ip_prefix:\r
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_sec_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix:\r
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix:\r
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix_len:\r
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_device_name:\r
+    description: "VDBE device Name for this vdbe VNF"\r
+    type: string\r
+  vdbe_hw_untr_mac_1:\r
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_name_1:\r
+    description: "VM Name for this vdbe node 1"\r
+    type: string\r
+  vdbe_untrusted_ip_1:\r
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_v6_ip_1:\r
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_vmac_address:\r
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_flavor_name:\r
+    description: "Flavor to use for vDBE"\r
+    type: string\r
+  vdbe_image_name:\r
+    description: "Image to use for vDBE"\r
+    type: string\r
+  vnf_id:\r
+    description: "Unique ID for this VF inst"\r
+    type: string\r
+  vnf_name:\r
+    description: "Unique name for this VF instance"\r
+    type: string\r
+  vf_module_id:\r
+    description: "Unique ID for this VF module inst"\r
+    type: string\r
+  availability_zone_1:\r
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."\r
+    type: string\r
+  counter:\r
+    description: "Counter."\r
+    type: number\r
+resources:\r
+  vdbe_untr_1_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count:\r
+        get_param: untrusted_num_vn\r
+      resource_def:\r
+        type: vlan1.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_1_port_1\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_param: untrusted_vn_networks\r
+  vdbe_node_1:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      availability_zone:\r
+        get_param: availability_zone_1\r
+      flavor:\r
+        get_param: vdbe_flavor_name\r
+      image:\r
+        get_param: vdbe_image_name\r
+      metadata:\r
+        vf_module_id:\r
+          get_param: vf_module_id\r
+        vnf_id:\r
+          get_param: vnf_id\r
+        vnf_name:\r
+          get_param: vnf_name\r
+      name:\r
+        get_param: vdbe_name_1\r
+      networks:\r
+        - port: {get_resource: vdbe_untr_1_port_1}\r
+        - port: {get_resource: vdbe_untr_2_port_1}\r
+  vdbe_node_2:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      availability_zone:\r
+        get_param: availability_zone_1\r
+      flavor:\r
+        get_param: vdbe_flavor_name\r
+      image:\r
+        get_param: vdbe_image_name\r
+      metadata:\r
+        vf_module_id:\r
+          get_param: vf_module_id\r
+        vnf_id:\r
+          get_param: vnf_id\r
+        vnf_name:\r
+          get_param: vnf_name\r
+      name:\r
+        get_param: vdbe_name_1\r
+      networks:\r
+        - port: {get_resource: vdbe_untr_1_port_2}\r
+        - port: {get_resource: vdbe_untr_2_port_2}\r
+  vdbe_untr_1_port_1:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            DBE:\r
+              get_param: vdbe_device_name\r
+            VM_NAME:\r
+              get_param: vdbe_name_1\r
+          template: VM_NAMEDBE001p1n004\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: control_int_net\r
+  vdbe_untr_2_port_1:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name: Port_2\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: fabric_int_net\r
+\r
+\r
+\r
+  vdbe_untr_1_port_2:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            DBE:\r
+              get_param: vdbe_device_name\r
+            VM_NAME:\r
+              get_param: vdbe_name_1\r
+          template: Port 3\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: control_int_net\r
+  vdbe_untr_2_port_2:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name: Port_4\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: fabric_int_net\r
+  vdbe_untr_2_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count: 5\r
+      resource_def:\r
+        type: vlan2.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_2_port_1\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_resource: fabric_int_net\r
+\r
+  vdbe_untr_3_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count:\r
+        get_param: untrusted_num_vn\r
+      resource_def:\r
+        type: vlan1.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_1_port_2\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_param: untrusted_vn_networks\r
+\r
+  vdbe_untr_4_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count: 5\r
+      resource_def:\r
+        type: vlan2.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_2_port_2\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_resource: fabric_int_net\r
+  control_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: control_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: control_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: VNF_NAME_control_net\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: control_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: control_int_net_rpf\r
+  fabric_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: fabric_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: fabric_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: template-fabric-int\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: fabric_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: fabric_int_net_rpf\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/vlan1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/vlan1.yml
new file mode 100644 (file)
index 0000000..b120379
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/vlan2.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/in/vlan2.yml
new file mode 100644 (file)
index 0000000..4ac55a5
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..49f86fb
--- /dev/null
@@ -0,0 +1,1059 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_2_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_vlan1_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      port_vdbe_untr_2_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_2_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan1_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan2_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan2_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan2_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_vlan1_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_vlan2_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_2_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_2_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_2_port_vlan2:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_2_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_2_port_vlan2:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_2_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9247ae5
--- /dev/null
@@ -0,0 +1,658 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    fabric_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the fabric virtual network\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    fabric_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the fabric virtual network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    fabric_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the fabric virtual network\r
+    fabric_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_shared\r
+      description: fabric virtual network shared\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    fabric_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: template-fabric-int\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_vlan1_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        - get_input: availability_zone_1\r
+        port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_vlan1_counter:\r
+        - get_input: counter\r
+        - get_input: counter\r
+        subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        subinterface_vlan2_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vlan2_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan2_parent_interface:\r
+        - vdbe_untr_2_port_1\r
+        - vdbe_untr_2_port_2\r
+        subinterface_vlan2_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        - get_input: aap_address_mode\r
+        subinterface_vlan1_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan2_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan1_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        - get_input: vdbe_untrusted_ip_1\r
+        subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        - get_input: vdbe_name_1\r
+        subinterface_vlan2_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        subinterface_vlan1_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan2_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        port_vdbe_untr_2_port_virtual_network_refs:\r
+        - - fabric_int_net\r
+        - - fabric_int_net\r
+        subinterface_vlan2_vn_network_list:\r
+        - fabric_int_net\r
+        - fabric_int_net\r
+        subinterface_vlan1_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        port_vdbe_untr_2_port_name:\r
+        - Port_2\r
+        - Port_4\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        - - control_int_net\r
+        subinterface_vlan2_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        - get_input: untrusted_vlan_tags\r
+        subinterface_vlan1_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        - get_input: untrusted_vn_networks\r
+        subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_vlan2_counter:\r
+        - get_input: counter\r
+        - get_input: counter\r
+        subinterface_vlan1_parent_interface:\r
+        - vdbe_untr_1_port_1\r
+        - vdbe_untr_1_port_2\r
+        subinterface_vlan1_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        - get_input: aap_address_mode\r
+        subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan2_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: Port 3\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        - get_input: untrusted_vlan_tags\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_vdbe_untr_2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: fabric_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: fabric_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - fabric_int_net\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..e62e4c4
--- /dev/null
@@ -0,0 +1,800 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_2_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_vlan1_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_vlan2_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_network_role:\r
+      type: string\r
+      required: true\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    port_vdbe_untr_2_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_2_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_2_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_vlan2_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    subinterface_vlan2_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_vlan1_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    subinterface_vlan2_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan2_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan2_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_vlan2_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_vlan1_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_vlan2_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan2_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_2_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_2_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_2_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_2_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_2_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_2_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_2_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_2_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_2_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_2_port_vlan2:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vlan2_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vlan2_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vlan2_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vlan2_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: vlan2ServiceTemplate.yaml\r
+          count: 5\r
+          mandatory: true\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vlan2_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vlan2_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vlan2_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vlan2_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vlan2_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan2_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_2_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port_vlan1:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vlan1_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vlan1_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: vlan1ServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vlan1_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vlan1_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vlan1_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vlan1_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vlan1_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - feature\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      network.incoming.packets_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.packets\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      feature_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - feature_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outpoing.packets\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.packets.rate\r
+      feature_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - feature\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      forwarder_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - forwarder\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.bytes\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.packets.rate\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.bytes.rate\r
+      binding_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - binding\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      link_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - link_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      link_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - link\r
+      dependency_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - dependency_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - dependency\r
+      dependency_vdbe_vdbe_untr_2_port_vlan2:\r
+      - vdbe_vdbe_untr_2_port_vlan2\r
+      - dependency\r
+      dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency\r
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/vlan1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/vlan1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..67821a7
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vlan1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    vlan1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vlan1.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - link\r
+      binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - binding\r
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/vlan2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/multiplePortsMultipleVlans/out/vlan2ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..af537a8
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vlan2\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    vlan2_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vlan2.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan2\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+      - vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+      - vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+      - link\r
+      binding_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+      - vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+      - binding\r
+      dependency_vdbe_untr_x_vlan2-Network-Role_vmi_subport_another:\r
+      - vdbe_untr_x_vlan2-Network-Role_vmi_subport_another\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/main.yml
new file mode 100644 (file)
index 0000000..3bf6d05
--- /dev/null
@@ -0,0 +1,353 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_name_2:
+    description: "VM Name for this vdbe node 2"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vnf_id_1:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name_1:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id_1:
+    description: "Unique ID for this VF module inst"
+    type: string
+  vnf_id_2:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name_2:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id_2:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+  availability_zone_2:
+    description: "The availability zone of secondary node2 vDBE vm in the local HA pair."
+    type: string
+  counter:
+    description: "Counter."
+    type: number
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id_1
+        vnf_id:
+          get_param: vnf_id_1
+        vnf_name:
+          get_param: vnf_name_1
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_port_1}
+  vdbe_node_2:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_2
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id_2
+        vnf_id:
+          get_param: vnf_id_2
+        vnf_name:
+          get_param: vnf_name_2
+      name:
+        get_param: vdbe_name_2
+      networks:
+        - port: {get_resource: vdbe_untr_port_2}
+  vdbe_untr_port_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name: Untr_Port_1
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+  vdbe_untr_port_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name: Untr_Port_2
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 5
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: "%index%"
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_port_1
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+
+  vdbe_untr_2_subports:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 5
+      resource_def:
+        type: nested.yml
+        properties:
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: counter
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_untr_port_2
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list:
+             get_param: untrusted_vn_networks
+
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/in/nested.yml
new file mode 100644 (file)
index 0000000..2a218f6
--- /dev/null
@@ -0,0 +1,116 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_x_int_vmi_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d296770
--- /dev/null
@@ -0,0 +1,676 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      port_vdbe_untr_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_nested_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_nested_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+    requirements:\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_int_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_int_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_int_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_int_vmi_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_int_vmi_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_int_vmi_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_int_vmi_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..828abb9
--- /dev/null
@@ -0,0 +1,606 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name_1\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vnf_name_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name_2\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    vnf_id_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id_1\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vnf_id_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id_2\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_num_vn\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    availability_zone_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_2\r
+      type: string\r
+      description: The availability zone of secondary node2 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_name_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_2\r
+      type: string\r
+      description: VM Name for this vdbe node 2\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    vf_module_id_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id_2\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    vf_module_id_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id_1\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_nested_parent_interface:\r
+        - vdbe_untr_port_1\r
+        - vdbe_untr_port_2\r
+        subinterface_nested_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        - get_input: aap_address_mode\r
+        subinterface_nested_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        - get_input: untrusted_vlan_tags\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        - get_input: availability_zone_2\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_nested_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id_1\r
+          vnf_id:\r
+            get_input: vnf_id_1\r
+          vnf_name:\r
+            get_input: vnf_name_1\r
+        - vf_module_id:\r
+            get_input: vf_module_id_2\r
+          vnf_id:\r
+            get_input: vnf_id_2\r
+          vnf_name:\r
+            get_input: vnf_name_2\r
+        subinterface_nested_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_nested_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        - get_input: vdbe_untrusted_ip_1\r
+        port_vdbe_untr_port_virtual_network_refs:\r
+        - - control_int_net\r
+        - - control_int_net\r
+        subinterface_nested_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_nested_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_nested_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        - get_input: untrusted_vn_networks\r
+        port_vdbe_untr_port_name:\r
+        - Untr_Port_1\r
+        - Untr_Port_2\r
+        port_vdbe_untr_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_nested_counter:\r
+        - get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        - get_input: counter\r
+        subinterface_nested_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        - get_input: vdbe_name_2\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..73c0fe3
--- /dev/null
@@ -0,0 +1,492 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    port_vdbe_untr_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    subinterface_nested_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_nested_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_nested_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_nested_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_nested_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+  node_templates:\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_port_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_nested_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_nested_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_nested_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_nested_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_nested_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count: 5\r
+          mandatory: true\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_nested_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_nested_vn_network_list\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_nested_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_nested_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_nested_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_int_vmi_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.bytes_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outgoing.bytes\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      feature_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_untr_x_int_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - feature_vdbe_untr_x_int_vmi_subport\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.packets_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.packets\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      network.outpoing.packets_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outpoing.packets\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outgoing.bytes.rate\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      forwarder_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - forwarder\r
+      binding_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - binding\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.bytes.rate\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      feature_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - feature\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.incoming.bytes_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.bytes\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.packets.rate\r
+    requirements:\r
+      dependency_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - dependency\r
+      dependency_vdbe_untr_x_int_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - dependency_vdbe_untr_x_int_vmi_subport\r
+      link_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - link\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      link_vdbe_untr_x_int_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - link_vdbe_untr_x_int_vmi_subport\r
+      dependency_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - dependency\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/onePortVlanSameType/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..b5d5fad
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_int_vmi_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_int_vmi_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_int_vmi_subport:\r
+      - vdbe_untr_x_int_vmi_subport\r
+      - feature\r
+    requirements:\r
+      binding_vdbe_untr_x_int_vmi_subport:\r
+      - vdbe_untr_x_int_vmi_subport\r
+      - binding\r
+      dependency_vdbe_untr_x_int_vmi_subport:\r
+      - vdbe_untr_x_int_vmi_subport\r
+      - dependency\r
+      link_vdbe_untr_x_int_vmi_subport:\r
+      - vdbe_untr_x_int_vmi_subport\r
+      - link\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..2222942
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "vlan1.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/main.yml
new file mode 100644 (file)
index 0000000..47280fa
--- /dev/null
@@ -0,0 +1,473 @@
+heat_template_version: 2013-05-23\r
+\r
+description: >\r
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+\r
+parameters:\r
+  aap_address_mode:\r
+    description: "Address mode for the vDBE cluster IP"\r
+    type: string\r
+  control_int_net_forwarding_mode:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: string\r
+  control_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the control virtual network"\r
+    type: string\r
+  control_int_net_shared:\r
+    description: "control virtual network shared"\r
+    type: boolean\r
+  control_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: boolean\r
+  fabric_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: boolean\r
+  fabric_int_net_forwarding_mode:\r
+    description: "forwarding mode of the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the fabric virtual network"\r
+    type: string\r
+  fabric_int_net_shared:\r
+    description: "fabric virtual network shared"\r
+  oam_net_name:\r
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"\r
+    type: string\r
+  untrusted_net_name:\r
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"\r
+    type: string\r
+  untrusted_num_vn:\r
+    constraints:\r
+      -\r
+        range:\r
+          max: 77\r
+          min: 1\r
+    description: "Number of vDBE subinterface virtual Networks"\r
+    type: number\r
+  untrusted_vlan_tags:\r
+    description: "List of subinterface vlan tags"\r
+    type: comma_delimited_list\r
+  untrusted_vn_networks:\r
+    description: "List of subinterface virtual networks"\r
+    type: comma_delimited_list\r
+  vdbe_aap_sec_untrusted_ip_prefix:\r
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_sec_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix:\r
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix:\r
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix_len:\r
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_device_name:\r
+    description: "VDBE device Name for this vdbe VNF"\r
+    type: string\r
+  vdbe_hw_untr_mac_1:\r
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_name_1:\r
+    description: "VM Name for this vdbe node 1"\r
+    type: string\r
+  vdbe_untrusted_ip_1:\r
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_v6_ip_1:\r
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_vmac_address:\r
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_flavor_name:\r
+    description: "Flavor to use for vDBE"\r
+    type: string\r
+  vdbe_image_name:\r
+    description: "Image to use for vDBE"\r
+    type: string\r
+  vnf_id:\r
+    description: "Unique ID for this VF inst"\r
+    type: string\r
+  vnf_name:\r
+    description: "Unique name for this VF instance"\r
+    type: string\r
+  vf_module_id:\r
+    description: "Unique ID for this VF module inst"\r
+    type: string\r
+  availability_zone_1:\r
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."\r
+    type: string\r
+  counter:\r
+    description: "Counter."\r
+    type: number\r
+resources:\r
+  vdbe_untr_1_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count:\r
+        get_param: untrusted_num_vn\r
+      resource_def:\r
+        type: vlan1.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_1_port_1\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_param: untrusted_vn_networks\r
+          optional_property_1: OPTIONAL_VALUE_SUBPORT_1\r
+  vdbe_node_1:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      availability_zone:\r
+        get_param: availability_zone_1\r
+      flavor:\r
+        get_param: vdbe_flavor_name\r
+      image:\r
+        get_param: vdbe_image_name\r
+      metadata:\r
+        vf_module_id:\r
+          get_param: vf_module_id\r
+        vnf_id:\r
+          get_param: vnf_id\r
+        vnf_name:\r
+          get_param: vnf_name\r
+      name:\r
+        get_param: vdbe_name_1\r
+      networks:\r
+        - port: {get_resource: vdbe_untr_1_port_1}\r
+        - port: {get_resource: vdbe_untr_2_port_1}\r
+  vdbe_node_2:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      availability_zone:\r
+        get_param: availability_zone_1\r
+      flavor:\r
+        get_param: vdbe_flavor_name\r
+      image:\r
+        get_param: vdbe_image_name\r
+      metadata:\r
+        vf_module_id:\r
+          get_param: vf_module_id\r
+        vnf_id:\r
+          get_param: vnf_id\r
+        vnf_name:\r
+          get_param: vnf_name\r
+      name:\r
+        get_param: vdbe_name_1\r
+      networks:\r
+        - port: {get_resource: vdbe_untr_1_port_2}\r
+        - port: {get_resource: vdbe_untr_2_port_2}\r
+  vdbe_untr_1_port_1:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            DBE:\r
+              get_param: vdbe_device_name\r
+            VM_NAME:\r
+              get_param: vdbe_name_1\r
+          template: VM_NAMEDBE001p1n004\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: control_int_net\r
+  vdbe_untr_2_port_1:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name: Port_2\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: fabric_int_net\r
+\r
+\r
+\r
+  vdbe_untr_1_port_2:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            DBE:\r
+              get_param: vdbe_device_name\r
+            VM_NAME:\r
+              get_param: vdbe_name_1\r
+          template: Port 3\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: control_int_net\r
+  vdbe_untr_2_port_2:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name: Port_4\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_resource: fabric_int_net\r
+\r
+  vdbe_untr_2_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count:\r
+        get_param: untrusted_num_vn\r
+      resource_def:\r
+        type: vlan1.yml\r
+        properties:\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: counter\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_1_port_2\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vn_network_list:\r
+             get_param: untrusted_vn_networks\r
+          optional_property_2: OPTIONAL_VALUE_SUBPORT_2\r
+\r
+  control_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: control_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: control_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: VNF_NAME_control_net\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: control_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: control_int_net_rpf\r
+  fabric_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    properties:\r
+      flood_unknown_unicast:\r
+        get_param: fabric_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: fabric_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: template-fabric-int\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: fabric_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: fabric_int_net_rpf\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/vlan1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/in/vlan1.yml
new file mode 100644 (file)
index 0000000..2c180dd
--- /dev/null
@@ -0,0 +1,123 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+  optional_property_1:
+    description: "Optional property"
+    type: string
+  optional_property_2:
+    description: "Optional property"
+    type: string
+
+resources:
+  vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..ef80586
--- /dev/null
@@ -0,0 +1,843 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_2_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      untrusted_num_vn:\r
+        type: float\r
+        description: Number of vDBE subinterface virtual Networks\r
+        required: true\r
+        status: SUPPORTED\r
+        constraints:\r
+        - in_range:\r
+          - 1\r
+          - 77\r
+      subinterface_vlan1_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      port_vdbe_untr_2_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_2_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+      port_vdbe_untr_1_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan1_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan1_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_2_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan1_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      port_vdbe_untr_1_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_vlan1_optional_property_1:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_1_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_optional_property_2:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_1_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_vlan1_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+    requirements:\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_2_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_2_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_1_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_2_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_1_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_2_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      optional_property_1:\r
+        type: string\r
+        description: Optional property\r
+        required: true\r
+        status: SUPPORTED\r
+      optional_property_2:\r
+        type: string\r
+        description: Optional property\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..90cdb20
--- /dev/null
@@ -0,0 +1,600 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    fabric_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the fabric virtual network\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    fabric_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the fabric virtual network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    fabric_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the fabric virtual network\r
+    fabric_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: fabric_int_net_shared\r
+      description: fabric virtual network shared\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    fabric_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: template-fabric-int\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_vlan1_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        - get_input: availability_zone_1\r
+        port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_vlan1_counter:\r
+        - get_input: counter\r
+        - get_input: counter\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        - vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        subinterface_vlan1_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_vlan1_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        - get_input: vdbe_untrusted_ip_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        - get_input: vdbe_name_1\r
+        subinterface_vlan1_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_vlan1_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        port_vdbe_untr_2_port_virtual_network_refs:\r
+        - - fabric_int_net\r
+        - - fabric_int_net\r
+        subinterface_vlan1_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        port_vdbe_untr_2_port_name:\r
+        - Port_2\r
+        - Port_4\r
+        port_vdbe_untr_1_port_virtual_network_refs:\r
+        - - control_int_net\r
+        - - control_int_net\r
+        subinterface_vlan1_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        - get_input: untrusted_vn_networks\r
+        subinterface_vlan1_parent_interface:\r
+        - vdbe_untr_1_port_1\r
+        - vdbe_untr_1_port_2\r
+        subinterface_vlan1_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        - get_input: aap_address_mode\r
+        subinterface_vlan1_optional_property_1:\r
+        - OPTIONAL_VALUE_SUBPORT_1\r
+        - null\r
+        port_vdbe_untr_1_port_name:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: Port 3\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        subinterface_vlan1_optional_property_2:\r
+        - null\r
+        - OPTIONAL_VALUE_SUBPORT_2\r
+        subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_vlan1_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        - get_input: untrusted_vlan_tags\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_1_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_vdbe_vdbe_untr_2_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: fabric_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - fabric_int_net\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0d08d1e
--- /dev/null
@@ -0,0 +1,645 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_2_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    subinterface_vlan1_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_network_role:\r
+      type: string\r
+      required: true\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    port_vdbe_untr_2_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_2_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    port_vdbe_untr_2_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+    port_vdbe_untr_1_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_order:\r
+      type: integer\r
+      required: true\r
+    port_vdbe_untr_1_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_vlan1_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    subinterface_vlan1_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_2_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_vlan1_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    port_vdbe_untr_1_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    subinterface_vlan1_optional_property_1:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_1_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_optional_property_2:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_vlan1_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    port_vdbe_untr_1_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_vlan1_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+  node_templates:\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_2_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_2_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_2_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_2_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_2_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_2_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_2_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_2_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_2_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_2_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port_vlan1:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_vlan1_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_vlan1_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_vlan1_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: vlan1ServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_vlan1_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_vlan1_vn_network_list\r
+          - index_value\r
+        optional_property_1:\r
+          get_input:\r
+          - subinterface_vlan1_optional_property_1\r
+          - index_value\r
+        optional_property_2:\r
+          get_input:\r
+          - subinterface_vlan1_optional_property_2\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_vlan1_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_vlan1_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_vlan1_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_vlan1_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_1_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_1_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_1_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_1_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_1_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_1_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_1_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_1_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_1_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      feature_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - feature\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      feature_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - feature\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      network.incoming.packets_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.packets\r
+      feature_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - feature\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes.rate\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets.rate\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      network.outpoing.packets_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outpoing.packets\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      network.incoming.bytes_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.bytes\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.packets.rate\r
+      binding_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - binding\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      forwarder_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - forwarder\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      forwarder_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - forwarder\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.packets.rate\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      network.outpoing.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outpoing.packets\r
+      network.incoming.packets_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.incoming.packets\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      network.incoming.bytes_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.bytes\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.packets.rate\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.incoming.bytes.rate\r
+      binding_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - binding\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      network.outgoing.bytes_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - network.outgoing.bytes.rate\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+    requirements:\r
+      dependency_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - dependency\r
+      link_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - link\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_vdbe_untr_2_port:\r
+      - vdbe_vdbe_untr_2_port\r
+      - dependency\r
+      dependency_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency\r
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      link_vdbe_vdbe_untr_1_port:\r
+      - vdbe_vdbe_untr_1_port\r
+      - link\r
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_1_port_vlan1:\r
+      - vdbe_vdbe_untr_1_port_vlan1\r
+      - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/vlan1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/optionalPropertiesConsolidation/out/vlan1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..559263b
--- /dev/null
@@ -0,0 +1,181 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: vlan1\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    optional_property_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Optional property\r
+    optional_property_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Optional property\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    vlan1_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/vlan1.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vlan1\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - link\r
+      binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - binding\r
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - dependency\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/main.yml
new file mode 100644 (file)
index 0000000..5d2410c
--- /dev/null
@@ -0,0 +1,347 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_name_2:
+    description: "VM Name for this vdbe node 2"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vnf_id_1:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name_1:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id_1:
+    description: "Unique ID for this VF module inst"
+    type: string
+  vnf_id_2:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name_2:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id_2:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+  availability_zone_2:
+    description: "The availability zone of secondary node2 vDBE vm in the local HA pair."
+    type: string
+  counter:
+    description: "Counter."
+    type: number
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id_1
+        vnf_id:
+          get_param: vnf_id_1
+        vnf_name:
+          get_param: vnf_name_1
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_untr_port_1}
+  vdbe_node_2:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_2
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id_2
+        vnf_id:
+          get_param: vnf_id_2
+        vnf_name:
+          get_param: vnf_name_2
+      name:
+        get_param: vdbe_name_2
+      networks:
+        - port: {get_resource: vdbe_untr_port_2}
+  vdbe_untr_port_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name: Untr_Port_1
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+  vdbe_untr_port_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name: Untr_Port_2
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_resource: control_int_net
+
+  vdbe_untr_1_subports:
+    type: nested.yml
+    properties:
+      aap_address_mode:
+        get_param: aap_address_mode
+      aap_sec_untrusted_ip_prefix:
+        get_param: vdbe_aap_sec_untrusted_ip_prefix
+      aap_sec_untrusted_ip_prefix_len:
+        get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+      aap_untrusted_ip_prefix:
+        get_param: vdbe_aap_untrusted_ip_prefix
+      aap_untrusted_ip_prefix_len:
+        get_param: vdbe_aap_untrusted_ip_prefix_len
+      aap_untrusted_v6_ip_prefix:
+        get_param: vdbe_aap_untrusted_v6_ip_prefix
+      aap_untrusted_v6_ip_prefix_len:
+        get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+      counter: 5
+      ip_address:
+        get_param: vdbe_untrusted_ip_1
+      ip_v6_address:
+        get_param: vdbe_untrusted_v6_ip_1
+      mac_address:
+        get_param: vdbe_hw_untr_mac_1
+      parent_interface:
+        get_resource: vdbe_untr_port_1
+      subinterfaces_name_prefix:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      vlan_tag_list:
+        get_param: untrusted_vlan_tags
+      vmac_address:
+        get_param: vdbe_untrusted_vmac_address
+      vn_network_list:
+         get_param: untrusted_vn_networks
+      optional_property_1: OPTIONAL_VALUE_SUBPORT_1
+
+  vdbe_untr_2_subports:
+    type: nested.yml
+    properties:
+      aap_address_mode:
+        get_param: aap_address_mode
+      aap_sec_untrusted_ip_prefix:
+        get_param: vdbe_aap_sec_untrusted_ip_prefix
+      aap_sec_untrusted_ip_prefix_len:
+        get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+      aap_untrusted_ip_prefix:
+        get_param: vdbe_aap_untrusted_ip_prefix
+      aap_untrusted_ip_prefix_len:
+        get_param: vdbe_aap_untrusted_ip_prefix_len
+      aap_untrusted_v6_ip_prefix:
+        get_param: vdbe_aap_untrusted_v6_ip_prefix
+      aap_untrusted_v6_ip_prefix_len:
+        get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+      counter:
+        get_param: counter
+      ip_address:
+        get_param: vdbe_untrusted_ip_1
+      ip_v6_address:
+        get_param: vdbe_untrusted_v6_ip_1
+      mac_address:
+        get_param: vdbe_hw_untr_mac_1
+      parent_interface:
+        get_resource: vdbe_untr_port_2
+      subinterfaces_name_prefix:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      vlan_tag_list:
+        get_param: untrusted_vlan_tags
+      vmac_address:
+        get_param: vdbe_untrusted_vmac_address
+      vn_network_list:
+         get_param: untrusted_vn_networks
+      optional_property_2: OPTIONAL_VALUE_SUBPORT_2
+
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    properties:
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/in/nested.yml
new file mode 100644 (file)
index 0000000..2c180dd
--- /dev/null
@@ -0,0 +1,123 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vn_network_list:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+  optional_property_1:
+    description: "Optional property"
+    type: string
+  optional_property_2:
+    description: "Optional property"
+    type: string
+
+resources:
+  vdbe_untr_x_vlan1-Network-Role_vmi_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vn_network_list}]
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..46ad884
--- /dev/null
@@ -0,0 +1,698 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.vdbe:\r
+    derived_from: org.openecomp.resource.abstract.nodes.VFC\r
+    properties:\r
+      port_vdbe_untr_port_network_role_tag:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_parent_interface:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_address_mode:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vlan_tag_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      port_vdbe_untr_port_subnetpoolid:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      compute_vdbe_availability_zone:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_flavor_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_port_order:\r
+        type: integer\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      vm_image_name:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_port_exCP_naming:\r
+        type: org.openecomp.datatypes.Naming\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_metadata:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_mac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_virtual_machine_interface_allowed_address_pairs:\r
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterface_nested_ip_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_virtual_network_refs:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_ip_v6_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_mac_requirements:\r
+        type: org.openecomp.datatypes.network.MacRequirements\r
+        required: true\r
+        status: SUPPORTED\r
+      index_value:\r
+        type: integer\r
+        description: Index value of this substitution service template runtime instance\r
+        required: false\r
+        default: 0\r
+        status: SUPPORTED\r
+        constraints:\r
+        - greater_or_equal: 0\r
+      subinterface_nested_vmac_address:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_vn_network_list:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_vlan_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.VlanRequirements\r
+      port_vdbe_untr_port_network_role:\r
+        type: string\r
+        required: true\r
+        status: SUPPORTED\r
+      port_vdbe_untr_port_virtual_machine_interface_mac_addresses:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: json\r
+      subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_counter:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: float\r
+      subinterface_nested_subinterfaces_name_prefix:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      compute_vdbe_name:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_optional_property_1:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      subinterface_nested_optional_property_2:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      port_vdbe_untr_port_ip_requirements:\r
+        type: list\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: org.openecomp.datatypes.network.IpRequirements\r
+    requirements:\r
+    - dependency_vdbe:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - local_storage_vdbe:\r
+        capability: tosca.capabilities.Attachment\r
+        node: tosca.nodes.BlockStorage\r
+        relationship: tosca.relationships.AttachesTo\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_vdbe_untr_port:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_vdbe_untr_port:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - dependency_vdbe_vdbe_untr_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_port:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      endpoint_vdbe:\r
+        type: tosca.capabilities.Endpoint.Admin\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.ephemeral.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_util_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      vcpus_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      scalable_vdbe:\r
+        type: tosca.capabilities.Scalable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.iops_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outpoing.packets_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      forwarder_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.Forwarder\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe_vdbe_untr_port:\r
+        type: tosca.capabilities.network.Bindable\r
+        valid_source_types:\r
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+      instance_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu.delta_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory.resident_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      feature_vdbe_vdbe_untr_port_nested:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      cpu_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.usage_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.latency_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.bytes_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.capacity_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      host_vdbe:\r
+        type: tosca.capabilities.Container\r
+        valid_source_types:\r
+        - tosca.nodes.SoftwareComponent\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.allocation_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      os_vdbe:\r
+        type: tosca.capabilities.OperatingSystem\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.root.size_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      memory_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      binding_vdbe:\r
+        type: tosca.capabilities.network.Bindable\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.write.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.device.read.requests.rate_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      disk.read.bytes_vdbe:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_port:\r
+        type: org.openecomp.capabilities.metric.Ceilometer\r
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      vn_network_list:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      optional_property_1:\r
+        type: string\r
+        description: Optional property\r
+        required: true\r
+        status: SUPPORTED\r
+      optional_property_2:\r
+        type: string\r
+        description: Optional property\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..6fd7b7b
--- /dev/null
@@ -0,0 +1,609 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name_1\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vnf_name_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name_2\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    vnf_id_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id_1\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vnf_id_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id_2\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_num_vn\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    availability_zone_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_2\r
+      type: string\r
+      description: The availability zone of secondary node2 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_name_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_2\r
+      type: string\r
+      description: VM Name for this vdbe node 2\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: counter\r
+      type: float\r
+      description: Counter.\r
+    vf_module_id_2:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id_2\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    vf_module_id_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id_1\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+    abstract_vdbe:\r
+      type: org.openecomp.resource.abstract.nodes.vdbe\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        subinterface_nested_parent_interface:\r
+        - vdbe_untr_port_1\r
+        - vdbe_untr_port_2\r
+        subinterface_nested_aap_address_mode:\r
+        - get_input: aap_address_mode\r
+        - get_input: aap_address_mode\r
+        subinterface_nested_vlan_tag_list:\r
+        - get_input: untrusted_vlan_tags\r
+        - get_input: untrusted_vlan_tags\r
+        compute_vdbe_availability_zone:\r
+        - get_input: availability_zone_1\r
+        - get_input: availability_zone_2\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        vm_flavor_name:\r
+          get_input: vdbe_flavor_name\r
+        subinterface_nested_aap_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_ip_prefix\r
+        vm_image_name:\r
+          get_input: vdbe_image_name\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        compute_vdbe_metadata:\r
+        - vf_module_id:\r
+            get_input: vf_module_id_1\r
+          vnf_id:\r
+            get_input: vnf_id_1\r
+          vnf_name:\r
+            get_input: vnf_name_1\r
+        - vf_module_id:\r
+            get_input: vf_module_id_2\r
+          vnf_id:\r
+            get_input: vnf_id_2\r
+          vnf_name:\r
+            get_input: vnf_name_2\r
+        subinterface_nested_mac_address:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_nested_ip_address:\r
+        - get_input: vdbe_untrusted_ip_1\r
+        - get_input: vdbe_untrusted_ip_1\r
+        port_vdbe_untr_port_virtual_network_refs:\r
+        - - control_int_net\r
+        - - control_int_net\r
+        subinterface_nested_ip_v6_address:\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        - get_input: vdbe_untrusted_v6_ip_1\r
+        subinterface_nested_vmac_address:\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        - get_input: vdbe_untrusted_vmac_address\r
+        subinterface_nested_vn_network_list:\r
+        - get_input: untrusted_vn_networks\r
+        - get_input: untrusted_vn_networks\r
+        port_vdbe_untr_port_name:\r
+        - Untr_Port_1\r
+        - Untr_Port_2\r
+        port_vdbe_untr_port_virtual_machine_interface_mac_addresses:\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        - - get_input: vdbe_hw_untr_mac_1\r
+        subinterface_nested_aap_untrusted_ip_prefix_len:\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        - get_input: vdbe_aap_untrusted_ip_prefix_len\r
+        subinterface_nested_counter:\r
+        - 5\r
+        - get_input: counter\r
+        subinterface_nested_subinterfaces_name_prefix:\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        - str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        compute_vdbe_name:\r
+        - get_input: vdbe_name_1\r
+        - get_input: vdbe_name_2\r
+        subinterface_nested_optional_property_1:\r
+        - OPTIONAL_VALUE_SUBPORT_1\r
+        - null\r
+        subinterface_nested_optional_property_2:\r
+        - null\r
+        - OPTIONAL_VALUE_SUBPORT_2\r
+        service_template_filter:\r
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml\r
+          count: 2\r
+        index_value:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+      requirements:\r
+      - link_vdbe_vdbe_untr_port:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - control_int_net\r
+      - abstract_vdbe\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..28d52cf
--- /dev/null
@@ -0,0 +1,508 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Nested_vdbe\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    port_vdbe_untr_port_network_role_tag:\r
+      type: string\r
+      required: true\r
+    subinterface_nested_parent_interface:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_address_mode:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vlan_tag_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    port_vdbe_untr_port_subnetpoolid:\r
+      type: string\r
+      required: true\r
+    compute_vdbe_availability_zone:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_flavor_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_port_order:\r
+      type: integer\r
+      required: true\r
+    subinterface_nested_aap_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    vm_image_name:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_port_exCP_naming:\r
+      type: org.openecomp.datatypes.Naming\r
+      required: true\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_sec_untrusted_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_aap_untrusted_v6_ip_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_metadata:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_mac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_virtual_machine_interface_allowed_address_pairs:\r
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs\r
+      required: true\r
+    subinterface_nested_ip_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_virtual_network_refs:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_ip_v6_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_mac_requirements:\r
+      type: org.openecomp.datatypes.network.MacRequirements\r
+      required: true\r
+    index_value:\r
+      type: integer\r
+      description: Index value of this substitution service template runtime instance\r
+      required: false\r
+      default: 0\r
+      constraints:\r
+      - greater_or_equal: 0\r
+    subinterface_nested_vmac_address:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_vn_network_list:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_vlan_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.VlanRequirements\r
+    port_vdbe_untr_port_network_role:\r
+      type: string\r
+      required: true\r
+    port_vdbe_untr_port_virtual_machine_interface_mac_addresses:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: json\r
+    subinterface_nested_aap_untrusted_ip_prefix_len:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_counter:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: float\r
+    subinterface_nested_subinterfaces_name_prefix:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    compute_vdbe_name:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_optional_property_1:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    subinterface_nested_optional_property_2:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: string\r
+    port_vdbe_untr_port_ip_requirements:\r
+      type: list\r
+      required: true\r
+      entry_schema:\r
+        type: org.openecomp.datatypes.network.IpRequirements\r
+  node_templates:\r
+    vdbe:\r
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe\r
+      properties:\r
+        availability_zone:\r
+          get_input:\r
+          - compute_vdbe_availability_zone\r
+          - index_value\r
+        flavor:\r
+          get_input: vm_flavor_name\r
+        metadata:\r
+          get_input:\r
+          - compute_vdbe_metadata\r
+          - index_value\r
+        image:\r
+          get_input: vm_image_name\r
+        name:\r
+          get_input:\r
+          - compute_vdbe_name\r
+          - index_value\r
+    vdbe_vdbe_untr_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        mac_requirements:\r
+          get_input: port_vdbe_untr_port_mac_requirements\r
+        order:\r
+          get_input: port_vdbe_untr_port_order\r
+        exCP_naming:\r
+          get_input: port_vdbe_untr_port_exCP_naming\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          get_input:\r
+          - port_vdbe_untr_port_virtual_machine_interface_allowed_address_pairs\r
+          - index_value\r
+        vlan_requirements:\r
+          get_input: port_vdbe_untr_port_vlan_requirements\r
+        virtual_network_refs:\r
+          get_input:\r
+          - port_vdbe_untr_port_virtual_network_refs\r
+          - index_value\r
+        ip_requirements:\r
+          get_input: port_vdbe_untr_port_ip_requirements\r
+        network_role_tag:\r
+          get_input: port_vdbe_untr_port_network_role_tag\r
+        virtual_machine_interface_mac_addresses:\r
+          get_input:\r
+          - port_vdbe_untr_port_virtual_machine_interface_mac_addresses\r
+          - index_value\r
+        network_role:\r
+          get_input: port_vdbe_untr_port_network_role\r
+        subnetpoolid:\r
+          get_input: port_vdbe_untr_port_subnetpoolid\r
+        name:\r
+          get_input:\r
+          - port_vdbe_untr_port_name\r
+          - index_value\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_vdbe_untr_port_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix\r
+          - index_value\r
+        ip_v6_address:\r
+          get_input:\r
+          - subinterface_nested_ip_v6_address\r
+          - index_value\r
+        counter:\r
+          get_input:\r
+          - subinterface_nested_counter\r
+          - index_value\r
+        ip_address:\r
+          get_input:\r
+          - subinterface_nested_ip_address\r
+          - index_value\r
+        subinterfaces_name_prefix:\r
+          get_input:\r
+          - subinterface_nested_subinterfaces_name_prefix\r
+          - index_value\r
+        aap_address_mode:\r
+          get_input:\r
+          - subinterface_nested_aap_address_mode\r
+          - index_value\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix\r
+          - index_value\r
+        parent_interface:\r
+          get_input:\r
+          - subinterface_nested_parent_interface\r
+          - index_value\r
+        vn_network_list:\r
+          get_input:\r
+          - subinterface_nested_vn_network_list\r
+          - index_value\r
+        optional_property_1:\r
+          get_input:\r
+          - subinterface_nested_optional_property_1\r
+          - index_value\r
+        optional_property_2:\r
+          get_input:\r
+          - subinterface_nested_optional_property_2\r
+          - index_value\r
+        mac_address:\r
+          get_input:\r
+          - subinterface_nested_mac_address\r
+          - index_value\r
+        vlan_tag_list:\r
+          get_input:\r
+          - subinterface_nested_vlan_tag_list\r
+          - index_value\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_sec_untrusted_ip_prefix_len\r
+          - index_value\r
+        vmac_address:\r
+          get_input:\r
+          - subinterface_nested_vmac_address\r
+          - index_value\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_v6_ip_prefix_len\r
+          - index_value\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input:\r
+          - subinterface_nested_aap_untrusted_ip_prefix_len\r
+          - index_value\r
+      requirements:\r
+      - binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_vdbe_untr_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.vdbe\r
+    capabilities:\r
+      network.outgoing.packets.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.bytes_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outgoing.bytes\r
+      feature_vdbe:\r
+      - vdbe\r
+      - feature\r
+      feature_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - feature\r
+      disk.device.iops_vdbe:\r
+      - vdbe\r
+      - disk.device.iops\r
+      endpoint_vdbe:\r
+      - vdbe\r
+      - endpoint\r
+      disk.ephemeral.size_vdbe:\r
+      - vdbe\r
+      - disk.ephemeral.size\r
+      cpu_util_vdbe:\r
+      - vdbe\r
+      - cpu_util\r
+      vcpus_vdbe:\r
+      - vdbe\r
+      - vcpus\r
+      disk.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.write.requests\r
+      disk.device.latency_vdbe:\r
+      - vdbe\r
+      - disk.device.latency\r
+      disk.device.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests.rate\r
+      disk.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes.rate\r
+      network.incoming.packets_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.packets\r
+      scalable_vdbe:\r
+      - vdbe\r
+      - scalable\r
+      disk.iops_vdbe:\r
+      - vdbe\r
+      - disk.iops\r
+      disk.device.write.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.write.requests\r
+      disk.device.capacity_vdbe:\r
+      - vdbe\r
+      - disk.device.capacity\r
+      disk.device.allocation_vdbe:\r
+      - vdbe\r
+      - disk.device.allocation\r
+      disk.usage_vdbe:\r
+      - vdbe\r
+      - disk.usage\r
+      memory.usage_vdbe:\r
+      - vdbe\r
+      - memory.usage\r
+      network.outpoing.packets_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outpoing.packets\r
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.outgoing.bytes.rate\r
+      disk.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.read.requests\r
+      forwarder_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - forwarder\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      binding_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - binding\r
+      instance_vdbe:\r
+      - vdbe\r
+      - instance\r
+      network.incoming.bytes.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.bytes.rate\r
+      cpu.delta_vdbe:\r
+      - vdbe\r
+      - cpu.delta\r
+      disk.device.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes.rate\r
+      disk.device.write.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes.rate\r
+      memory.resident_vdbe:\r
+      - vdbe\r
+      - memory.resident\r
+      feature_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - feature\r
+      disk.write.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.write.requests.rate\r
+      cpu_vdbe:\r
+      - vdbe\r
+      - cpu\r
+      disk.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.write.bytes\r
+      disk.device.usage_vdbe:\r
+      - vdbe\r
+      - disk.device.usage\r
+      disk.device.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.read.bytes\r
+      disk.latency_vdbe:\r
+      - vdbe\r
+      - disk.latency\r
+      network.incoming.bytes_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.bytes\r
+      disk.capacity_vdbe:\r
+      - vdbe\r
+      - disk.capacity\r
+      host_vdbe:\r
+      - vdbe\r
+      - host\r
+      disk.allocation_vdbe:\r
+      - vdbe\r
+      - disk.allocation\r
+      disk.read.bytes.rate_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes.rate\r
+      os_vdbe:\r
+      - vdbe\r
+      - os\r
+      disk.device.read.requests_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests\r
+      disk.root.size_vdbe:\r
+      - vdbe\r
+      - disk.root.size\r
+      memory_vdbe:\r
+      - vdbe\r
+      - memory\r
+      binding_vdbe:\r
+      - vdbe\r
+      - binding\r
+      disk.device.write.bytes_vdbe:\r
+      - vdbe\r
+      - disk.device.write.bytes\r
+      disk.device.read.requests.rate_vdbe:\r
+      - vdbe\r
+      - disk.device.read.requests.rate\r
+      disk.read.bytes_vdbe:\r
+      - vdbe\r
+      - disk.read.bytes\r
+      network.incoming.packets.rate_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - network.incoming.packets.rate\r
+    requirements:\r
+      dependency_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - dependency\r
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - link_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      link_vdbe_vdbe_untr_port:\r
+      - vdbe_vdbe_untr_port\r
+      - link\r
+      local_storage_vdbe:\r
+      - vdbe\r
+      - local_storage\r
+      dependency_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - dependency\r
+      dependency_vdbe:\r
+      - vdbe\r
+      - dependency\r
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport_vdbe_vdbe_untr_port_nested:\r
+      - vdbe_vdbe_untr_port_nested\r
+      - dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/regularNestedSubInterface/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..893a3af
--- /dev/null
@@ -0,0 +1,181 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    vn_network_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    optional_property_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Optional property\r
+    optional_property_2:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Optional property\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vn_network_list\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - feature\r
+    requirements:\r
+      link_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - link\r
+      binding_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - binding\r
+      dependency_vdbe_untr_x_vlan1-Network-Role_vmi_subport:\r
+      - vdbe_untr_x_vlan1-Network-Role_vmi_subport\r
+      - dependency\r
\ No newline at end of file
index bc8bf24..239c7fb 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.FSB1:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    Internal2_name:
-      label: Internal2_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_name
-      type: string
-      description: Internal2_name
-    FSB1_volume_name:
-      label: FSB1_volume
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: FSB1_volume_name
-      type: string
-      description: FSB1_volume_1
-    jsa_cidr:
-      label: jsa_cidr
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: jsa_cidr
-      type: string
-      description: jsa_cidr
-    availabilityzone_name:
-      label: availabilityzone_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone_name
-    Internal2_external:
-      label: Internal2_external
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_external
-      type: string
-      description: Internal2_external
-    vipr_atm_name_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: vipr_atm_name_0
-      type: string
-      description: prop
-    Internal2_forwarding_mode:
-      label: Internal2_forwarding_mode
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_forwarding_mode
-      type: string
-      description: Internal2_forwarding_mode
-    pcrf_vnf_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_vnf_id
-      type: string
-      description: prop
-    FSB_1_image:
-      label: MME_FSB1
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: FSB_1_image
-      type: string
-      description: MME_FSB1_15B-CP04-r5a01
-    fsb1-Internal1-mac:
-      label: FSB1_internal_mac
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-Internal1-mac
-      type: string
-      description: FSB1_internal_mac
-    pcm_server_name:
-      label: pcm_server_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_server_name
-      type: string
-      description: pcm_server_name
-    oam_net_name:
-      label: oam_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_name
-      type: string
-      description: oam_net_name
-    fsb1-Internal2-mac:
-      label: FSB1_internal_mac
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-Internal2-mac
-      type: string
-      description: FSB1_internal_mac
-    fsb_zone:
-      label: FSB1_zone
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb_zone
-      type: string
-      description: FSB1_zone
-    oam_net_gw:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_gw
-      type: string
-      description: prop
-    VMME_FSB1_boot_volume:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: VMME_FSB1_boot_volume
-      type: string
-    network_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: network_name
-      type: string
-      description: prop
-    cps_net_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: cps_net_ip
-      type: string
-      description: prop
-    pcrf_psm_server_name:
-      label: pcrf_psm_server_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_psm_server_name
-      type: string
-      description: pcrf_psm_server_name
-    pcm_flavor_name:
-      label: pcm_flavor_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_flavor_name
-      type: string
-      description: pcm_flavor_name
-    pcrf_cps_net_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_cps_net_ip
-      type: string
-      description: prop
-    fsb2-Internal1-mac:
-      label: FSB1_internal_mac
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb2-Internal1-mac
-      type: string
-      description: FSB1_internal_mac
-    pcrf_cps_net_name:
-      label: pcrf_cps_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_cps_net_name
-      type: string
-      description: pcrf_cps_net_name
-    pcm_vol:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_vol
-      type: string
-      description: prop
-    Internal1_external:
-      label: Internal1_external
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_external
-      type: string
-      description: Internal1_external
-    Internal1_shared:
-      label: Internal1_shared
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_shared
-      type: string
-      description: Internal1_shared
-    fsb1-name:
-      label: FSB1_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-name
-      type: string
-      description: FSB1_name
-    pcm_image_name:
-      label: pcm_image_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_image_name
-      type: string
-      description: pcm_image_name
-    pcrf_psm_flavor_name:
-      label: pcrf_psm_flavor_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_psm_flavor_name
-      type: string
-      description: pcrf_psm_flavor_name
-    pcrf_psm_image_name:
-      label: pcrf_psm_image_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_psm_image_name
-      type: string
-      description: pcrf_psm_image_name
-    snapshot01:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: snapshot01
-      type: string
-      description: prop
-    volume_size:
-      label: volume size
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: volume_size
-      type: float
-      description: my volume size 320GB
-    snapshot02:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: snapshot02
-      type: string
-      description: prop
-    Internal2_shared:
-      label: Internal2_shared
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_shared
-      type: string
-      description: Internal2_shared
-    cps_net_mask:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: cps_net_mask
-      type: string
-      description: prop
-    Internal1_net_name:
-      label: Internal1_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_net_name
-      type: string
-      description: Internal1_net_name
-    fsb1-flavor:
-      label: FSB1_flavor
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-flavor
-      type: string
-      description: FSB1_flavor
-    pcm_vol_01:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_vol_01
-      type: string
-      description: prop
-    volume_type:
-      label: volume type
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: volume_type
-      type: string
-      description: volume type Gold
-    fsb1-zone:
-      label: FSB1_zone
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-zone
-      type: string
-      description: FSB1_zone
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: security_group_name
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    jsa_net_name:
-      label: jsa_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: jsa_net_name
-    port_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: port_name
-      type: string
-      description: prop
-    oam_net_id:
-      label: oam_net_id
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_id
-      type: string
-      description: oam_net_id
-    Internal1_forwarding_mode:
-      label: Internal1_forwarding_mode
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_forwarding_mode
-      type: string
-      description: Internal1_forwarding_mode
-    cps_net_name:
-      label: cps_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: cps_net_name
-      type: string
-      description: cps_net_name
-    oam_net_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_ip
-      type: string
-      description: prop
-    oam_net_mask:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_mask
-      type: string
-      description: prop
-    fsb1-oam-ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-oam-ip
-      type: string
-      description: prop
-    pcrf_security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_security_group_name
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-  node_templates:
-    VMI1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_PORT_3
-            params:
-              VM_NAME:
-                get_input: vipr_atm_name_0
-        virtual_network_refs:
-        - get_input: network_name
-        virtual_machine_interface_properties:
-          service_interface_type: left
-        port_tuple_refs:
-        - get_input: port_name
-    FSB1:
-      type: org.openecomp.resource.vfc.nodes.heat.FSB1
-      properties:
-        flavor:
-          get_input: fsb1-flavor
-        availability_zone:
-          get_input: fsb_zone
-        name:
-          get_attribute:
-          - VMI1
-          - fq_name
-          - ip
-          - show
-          - sub_interface_vlan_tag
-          - mac
-          - port_tuple_refs
-          - ip_prefix
-          - address_mode
-          - mac_address
-          - ip_prefix_len
-          - name
-          - virtual_machine_interface_properties_service_interface_type
-          - allowed_address_pair
-          - virtual_network_refs
-          - virtual_machine_interface_properties
-          - virtual_machine_interface_allowed_address_pairs
-          - virtual_machine_interface_mac_addresses
-  groups:
-    ep-jsa_net_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/ep-jsa_net.yaml
-        description: |
-          Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD)
-      members:
-      - VMI1
-      - FSB1
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.FSB1:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    Internal2_name:\r
+      label: Internal2_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal2_name\r
+      type: string\r
+      description: Internal2_name\r
+    FSB1_volume_name:\r
+      label: FSB1_volume\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: FSB1_volume_name\r
+      type: string\r
+      description: FSB1_volume_1\r
+    jsa_cidr:\r
+      label: jsa_cidr\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: jsa_cidr\r
+      type: string\r
+      description: jsa_cidr\r
+    availabilityzone_name:\r
+      label: availabilityzone_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: availabilityzone_name\r
+      type: string\r
+      description: availabilityzone_name\r
+    Internal2_external:\r
+      label: Internal2_external\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal2_external\r
+      type: string\r
+      description: Internal2_external\r
+    vipr_atm_name_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: vipr_atm_name_0\r
+      type: string\r
+      description: prop\r
+    Internal2_forwarding_mode:\r
+      label: Internal2_forwarding_mode\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal2_forwarding_mode\r
+      type: string\r
+      description: Internal2_forwarding_mode\r
+    pcrf_vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcrf_vnf_id\r
+      type: string\r
+      description: prop\r
+    FSB_1_image:\r
+      label: MME_FSB1\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: FSB_1_image\r
+      type: string\r
+      description: MME_FSB1_15B-CP04-r5a01\r
+    fsb1-Internal1-mac:\r
+      label: FSB1_internal_mac\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb1-Internal1-mac\r
+      type: string\r
+      description: FSB1_internal_mac\r
+    pcm_server_name:\r
+      label: pcm_server_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcm_server_name\r
+      type: string\r
+      description: pcm_server_name\r
+    oam_net_name:\r
+      label: oam_net_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: oam_net_name\r
+    fsb1-Internal2-mac:\r
+      label: FSB1_internal_mac\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb1-Internal2-mac\r
+      type: string\r
+      description: FSB1_internal_mac\r
+    fsb_zone:\r
+      label: FSB1_zone\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb_zone\r
+      type: string\r
+      description: FSB1_zone\r
+    oam_net_gw:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: oam_net_gw\r
+      type: string\r
+      description: prop\r
+    VMME_FSB1_boot_volume:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: VMME_FSB1_boot_volume\r
+      type: string\r
+    network_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: network_name\r
+      type: string\r
+      description: prop\r
+    cps_net_ip:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: cps_net_ip\r
+      type: string\r
+      description: prop\r
+    pcrf_psm_server_name:\r
+      label: pcrf_psm_server_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcrf_psm_server_name\r
+      type: string\r
+      description: pcrf_psm_server_name\r
+    pcm_flavor_name:\r
+      label: pcm_flavor_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcm_flavor_name\r
+      type: string\r
+      description: pcm_flavor_name\r
+    pcrf_cps_net_ip:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcrf_cps_net_ip\r
+      type: string\r
+      description: prop\r
+    fsb2-Internal1-mac:\r
+      label: FSB1_internal_mac\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb2-Internal1-mac\r
+      type: string\r
+      description: FSB1_internal_mac\r
+    pcrf_cps_net_name:\r
+      label: pcrf_cps_net_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcrf_cps_net_name\r
+      type: string\r
+      description: pcrf_cps_net_name\r
+    pcm_vol:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcm_vol\r
+      type: string\r
+      description: prop\r
+    Internal1_external:\r
+      label: Internal1_external\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal1_external\r
+      type: string\r
+      description: Internal1_external\r
+    Internal1_shared:\r
+      label: Internal1_shared\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal1_shared\r
+      type: string\r
+      description: Internal1_shared\r
+    fsb1-name:\r
+      label: FSB1_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb1-name\r
+      type: string\r
+      description: FSB1_name\r
+    pcm_image_name:\r
+      label: pcm_image_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcm_image_name\r
+      type: string\r
+      description: pcm_image_name\r
+    pcrf_psm_flavor_name:\r
+      label: pcrf_psm_flavor_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcrf_psm_flavor_name\r
+      type: string\r
+      description: pcrf_psm_flavor_name\r
+    pcrf_psm_image_name:\r
+      label: pcrf_psm_image_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcrf_psm_image_name\r
+      type: string\r
+      description: pcrf_psm_image_name\r
+    snapshot01:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: snapshot01\r
+      type: string\r
+      description: prop\r
+    volume_size:\r
+      label: volume size\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: volume_size\r
+      type: float\r
+      description: my volume size 320GB\r
+    snapshot02:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: snapshot02\r
+      type: string\r
+      description: prop\r
+    Internal2_shared:\r
+      label: Internal2_shared\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal2_shared\r
+      type: string\r
+      description: Internal2_shared\r
+    cps_net_mask:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: cps_net_mask\r
+      type: string\r
+      description: prop\r
+    Internal1_net_name:\r
+      label: Internal1_net_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal1_net_name\r
+      type: string\r
+      description: Internal1_net_name\r
+    fsb1-flavor:\r
+      label: FSB1_flavor\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb1-flavor\r
+      type: string\r
+      description: FSB1_flavor\r
+    pcm_vol_01:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcm_vol_01\r
+      type: string\r
+      description: prop\r
+    volume_type:\r
+      label: volume type\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: volume_type\r
+      type: string\r
+      description: volume type Gold\r
+    fsb1-zone:\r
+      label: FSB1_zone\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb1-zone\r
+      type: string\r
+      description: FSB1_zone\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    jsa_net_name:\r
+      label: jsa_net_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: jsa_net_name\r
+      type: string\r
+      description: jsa_net_name\r
+    port_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: port_name\r
+      type: string\r
+      description: prop\r
+    oam_net_id:\r
+      label: oam_net_id\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: oam_net_id\r
+      type: string\r
+      description: oam_net_id\r
+    Internal1_forwarding_mode:\r
+      label: Internal1_forwarding_mode\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: Internal1_forwarding_mode\r
+      type: string\r
+      description: Internal1_forwarding_mode\r
+    cps_net_name:\r
+      label: cps_net_name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: cps_net_name\r
+      type: string\r
+      description: cps_net_name\r
+    oam_net_ip:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: oam_net_ip\r
+      type: string\r
+      description: prop\r
+    oam_net_mask:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: oam_net_mask\r
+      type: string\r
+      description: prop\r
+    fsb1-oam-ip:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: fsb1-oam-ip\r
+      type: string\r
+      description: prop\r
+    pcrf_security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - ep-jsa_net\r
+            source_type: HEAT\r
+            param_name: pcrf_security_group_name\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    VMI1:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: false\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_PORT_3\r
+            params:\r
+              VM_NAME:\r
+                get_input: vipr_atm_name_0\r
+    FSB1:\r
+      type: org.openecomp.resource.vfc.nodes.heat.FSB1\r
+      properties:\r
+        flavor:\r
+          get_input: fsb1-flavor\r
+        availability_zone:\r
+          get_input: fsb_zone\r
+        name:\r
+          get_attribute:\r
+          - VMI1\r
+          - tenant_id\r
+          - port_security_enabled\r
+          - device_id\r
+          - qos_policy\r
+          - allowed_address_pairs\r
+          - show\r
+          - device_owner\r
+          - network\r
+          - security_groups\r
+          - fixed_ips\r
+          - mac_address\r
+          - admin_state_up\r
+          - name\r
+          - subnets\r
+          - status\r
+  groups:\r
+    ep-jsa_net_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/ep-jsa_net.yaml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD)\r
+      members:\r
+      - VMI1\r
+      - FSB1\r
\ No newline at end of file
index 3f4f796..edf4863 100644 (file)
@@ -220,19 +220,13 @@ parameters:
 
 resources:
   VMI1:
-      type: OS::ContrailV2::VirtualMachineInterface
+      type: OS::Neutron::Port
       properties:
         name:
           str_replace:
             template: VM_NAME_PORT_3
             params:
               VM_NAME: { get_param: vipr_atm_name_0 }
-        virtual_machine_interface_properties:
-          {
-          virtual_machine_interface_properties_service_interface_type: 'left'
-          }
-        port_tuple_refs: [{ get_param: port_name }]
-        virtual_network_refs: [{ get_param: network_name }]
 
   FSB1:
       type: OS::Nova::Server
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/expectedoutputfiles/MainServiceTemplate.yaml
deleted file mode 100644 (file)
index 7469661..0000000
+++ /dev/null
@@ -1,750 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.FSB2:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-  org.openecomp.resource.vfc.nodes.heat.FSB1:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    Internal2_name:
-      label: Internal2_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_name
-      type: string
-      description: Internal2_name
-    FSB1_volume_name:
-      label: FSB1_volume
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: FSB1_volume_name
-      type: string
-      description: FSB1_volume_1
-    jsa_cidr:
-      label: jsa_cidr
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: jsa_cidr
-      type: string
-      description: jsa_cidr
-    availabilityzone_name:
-      label: availabilityzone_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: availabilityzone_name
-      type: string
-      description: availabilityzone_name
-    Internal2_external:
-      label: Internal2_external
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_external
-      type: string
-      description: Internal2_external
-    vipr_atm_name_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: vipr_atm_name_0
-      type: string
-      description: prop
-    Internal2_forwarding_mode:
-      label: Internal2_forwarding_mode
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_forwarding_mode
-      type: string
-      description: Internal2_forwarding_mode
-    pcrf_vnf_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_vnf_id
-      type: string
-      description: prop
-    FSB_1_image:
-      label: MME_FSB1
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: FSB_1_image
-      type: string
-      description: MME_FSB1_15B-CP04-r5a01
-    fsb1-Internal1-mac:
-      label: FSB1_internal_mac
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-Internal1-mac
-      type: string
-      description: FSB1_internal_mac
-    pcm_server_name:
-      label: pcm_server_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_server_name
-      type: string
-      description: pcm_server_name
-    oam_net_name:
-      label: oam_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_name
-      type: string
-      description: oam_net_name
-    fsb1-Internal2-mac:
-      label: FSB1_internal_mac
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-Internal2-mac
-      type: string
-      description: FSB1_internal_mac
-    fsb_zone:
-      label: FSB1_zone
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb_zone
-      type: string
-      description: FSB1_zone
-    oam_net_gw:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_gw
-      type: string
-      description: prop
-    VMME_FSB1_boot_volume:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: VMME_FSB1_boot_volume
-      type: string
-    network_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: network_name
-      type: string
-      description: prop
-    cps_net_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: cps_net_ip
-      type: string
-      description: prop
-    pcrf_psm_server_name:
-      label: pcrf_psm_server_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_psm_server_name
-      type: string
-      description: pcrf_psm_server_name
-    pcm_flavor_name:
-      label: pcm_flavor_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_flavor_name
-      type: string
-      description: pcm_flavor_name
-    pcrf_cps_net_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_cps_net_ip
-      type: string
-      description: prop
-    fsb2-Internal1-mac:
-      label: FSB1_internal_mac
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb2-Internal1-mac
-      type: string
-      description: FSB1_internal_mac
-    pcrf_cps_net_name:
-      label: pcrf_cps_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_cps_net_name
-      type: string
-      description: pcrf_cps_net_name
-    pcm_vol:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_vol
-      type: string
-      description: prop
-    Internal1_external:
-      label: Internal1_external
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_external
-      type: string
-      description: Internal1_external
-    Internal1_shared:
-      label: Internal1_shared
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_shared
-      type: string
-      description: Internal1_shared
-    fsb1-name:
-      label: FSB1_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-name
-      type: string
-      description: FSB1_name
-    pcm_image_name:
-      label: pcm_image_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_image_name
-      type: string
-      description: pcm_image_name
-    pcrf_psm_flavor_name:
-      label: pcrf_psm_flavor_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_psm_flavor_name
-      type: string
-      description: pcrf_psm_flavor_name
-    pcrf_psm_image_name:
-      label: pcrf_psm_image_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_psm_image_name
-      type: string
-      description: pcrf_psm_image_name
-    snapshot01:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: snapshot01
-      type: string
-      description: prop
-    volume_size:
-      label: volume size
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: volume_size
-      type: float
-      description: my volume size 320GB
-    snapshot02:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: snapshot02
-      type: string
-      description: prop
-    Internal2_shared:
-      label: Internal2_shared
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal2_shared
-      type: string
-      description: Internal2_shared
-    cps_net_mask:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: cps_net_mask
-      type: string
-      description: prop
-    Internal1_net_name:
-      label: Internal1_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_net_name
-      type: string
-      description: Internal1_net_name
-    fsb1-flavor:
-      label: FSB1_flavor
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-flavor
-      type: string
-      description: FSB1_flavor
-    pcm_vol_01:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcm_vol_01
-      type: string
-      description: prop
-    volume_type:
-      label: volume type
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: volume_type
-      type: string
-      description: volume type Gold
-    fsb1-zone:
-      label: FSB1_zone
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-zone
-      type: string
-      description: FSB1_zone
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: security_group_name
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    jsa_net_name:
-      label: jsa_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: jsa_net_name
-    port_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: port_name
-      type: string
-      description: prop
-    oam_net_id:
-      label: oam_net_id
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_id
-      type: string
-      description: oam_net_id
-    Internal1_forwarding_mode:
-      label: Internal1_forwarding_mode
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: Internal1_forwarding_mode
-      type: string
-      description: Internal1_forwarding_mode
-    cps_net_name:
-      label: cps_net_name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: cps_net_name
-      type: string
-      description: cps_net_name
-    oam_net_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_ip
-      type: string
-      description: prop
-    oam_net_mask:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: oam_net_mask
-      type: string
-      description: prop
-    fsb1-oam-ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: fsb1-oam-ip
-      type: string
-      description: prop
-    pcrf_security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - ep-jsa_net
-            source_type: HEAT
-            param_name: pcrf_security_group_name
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-  node_templates:
-    VMI1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_PORT_3
-            params:
-              VM_NAME:
-                get_input: vipr_atm_name_0
-        virtual_network_refs:
-        - get_input: network_name
-        virtual_machine_interface_properties:
-          service_interface_type: left
-        port_tuple_refs:
-        - get_input: port_name
-    FSB2:
-      type: org.openecomp.resource.vfc.nodes.heat.FSB2
-      properties:
-        flavor:
-          get_input: fsb1-flavor
-        availability_zone:
-          get_input: fsb_zone
-        name:
-          get_attribute:
-          - VMI1
-          - virtual_machine_interface_allowed_address_pairs
-          - allowed_address_pair
-          - ip
-          - ip_prefix
-    FSB1:
-      type: org.openecomp.resource.vfc.nodes.heat.FSB1
-      properties:
-        flavor:
-          get_input: fsb1-flavor
-        availability_zone:
-          get_input: fsb_zone
-        name:
-          get_attribute:
-          - VMI1
-          - name
-  groups:
-    ep-jsa_net_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/ep-jsa_net.yaml
-        description: |
-          Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD)
-      members:
-      - VMI1
-      - FSB2
-      - FSB1
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/expectedoutputfiles/ep-jsa_netServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/expectedoutputfiles/ep-jsa_netServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..23ea24e
--- /dev/null
@@ -0,0 +1,656 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: ep-jsa_net\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.FSB2:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+  org.openecomp.resource.vfc.nodes.heat.FSB1:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    Internal2_name:\r
+      label: Internal2_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal2_name\r
+    FSB1_volume_name:\r
+      label: FSB1_volume\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_volume_1\r
+    jsa_cidr:\r
+      label: jsa_cidr\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: jsa_cidr\r
+    availabilityzone_name:\r
+      label: availabilityzone_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availabilityzone_name\r
+    Internal2_external:\r
+      label: Internal2_external\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal2_external\r
+    vipr_atm_name_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    Internal2_forwarding_mode:\r
+      label: Internal2_forwarding_mode\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal2_forwarding_mode\r
+    pcrf_vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    FSB_1_image:\r
+      label: MME_FSB1\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: MME_FSB1_15B-CP04-r5a01\r
+    fsb1-Internal1-mac:\r
+      label: FSB1_internal_mac\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_internal_mac\r
+    pcm_server_name:\r
+      label: pcm_server_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: pcm_server_name\r
+    oam_net_name:\r
+      label: oam_net_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: oam_net_name\r
+    fsb1-Internal2-mac:\r
+      label: FSB1_internal_mac\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_internal_mac\r
+    fsb_zone:\r
+      label: FSB1_zone\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_zone\r
+    oam_net_gw:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    VMME_FSB1_boot_volume:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    network_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    cps_net_ip:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    pcrf_psm_server_name:\r
+      label: pcrf_psm_server_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: pcrf_psm_server_name\r
+    pcm_flavor_name:\r
+      label: pcm_flavor_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: pcm_flavor_name\r
+    pcrf_cps_net_ip:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    fsb2-Internal1-mac:\r
+      label: FSB1_internal_mac\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_internal_mac\r
+    pcrf_cps_net_name:\r
+      label: pcrf_cps_net_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: pcrf_cps_net_name\r
+    pcm_vol:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    Internal1_external:\r
+      label: Internal1_external\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal1_external\r
+    Internal1_shared:\r
+      label: Internal1_shared\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal1_shared\r
+    fsb1-name:\r
+      label: FSB1_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_name\r
+    pcm_image_name:\r
+      label: pcm_image_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: pcm_image_name\r
+    pcrf_psm_flavor_name:\r
+      label: pcrf_psm_flavor_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: pcrf_psm_flavor_name\r
+    pcrf_psm_image_name:\r
+      label: pcrf_psm_image_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: pcrf_psm_image_name\r
+    snapshot01:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    volume_size:\r
+      label: volume size\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: my volume size 320GB\r
+    snapshot02:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    Internal2_shared:\r
+      label: Internal2_shared\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal2_shared\r
+    cps_net_mask:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    Internal1_net_name:\r
+      label: Internal1_net_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal1_net_name\r
+    fsb1-flavor:\r
+      label: FSB1_flavor\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_flavor\r
+    pcm_vol_01:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    volume_type:\r
+      label: volume type\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: volume type Gold\r
+    fsb1-zone:\r
+      label: FSB1_zone\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: FSB1_zone\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    jsa_net_name:\r
+      label: jsa_net_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: jsa_net_name\r
+    port_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    oam_net_id:\r
+      label: oam_net_id\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: oam_net_id\r
+    Internal1_forwarding_mode:\r
+      label: Internal1_forwarding_mode\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Internal1_forwarding_mode\r
+    cps_net_name:\r
+      label: cps_net_name\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: cps_net_name\r
+    oam_net_ip:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    oam_net_mask:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    fsb1-oam-ip:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: prop\r
+    pcrf_security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+  node_templates:\r
+    VMI1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_PORT_3\r
+            params:\r
+              VM_NAME:\r
+                get_input: vipr_atm_name_0\r
+        virtual_network_refs:\r
+        - get_input: network_name\r
+        virtual_machine_interface_properties:\r
+          service_interface_type: left\r
+        port_tuple_refs:\r
+        - get_input: port_name\r
+    FSB2:\r
+      type: org.openecomp.resource.vfc.nodes.heat.FSB2\r
+      properties:\r
+        flavor:\r
+          get_input: fsb1-flavor\r
+        availability_zone:\r
+          get_input: fsb_zone\r
+        name:\r
+          get_attribute:\r
+          - VMI1\r
+          - virtual_machine_interface_allowed_address_pairs\r
+          - allowed_address_pair\r
+          - ip\r
+          - ip_prefix\r
+    FSB1:\r
+      type: org.openecomp.resource.vfc.nodes.heat.FSB1\r
+      properties:\r
+        flavor:\r
+          get_input: fsb1-flavor\r
+        availability_zone:\r
+          get_input: fsb_zone\r
+        name:\r
+          get_attribute:\r
+          - VMI1\r
+          - name\r
+  groups:\r
+    ep-jsa_net_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/ep-jsa_net.yaml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD)\r
+      members:\r
+      - VMI1\r
+      - FSB2\r
+      - FSB1\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.ep-jsa_net\r
+    capabilities:\r
+      disk.device.write.requests.rate_FSB2:\r
+      - FSB2\r
+      - disk.device.write.requests.rate\r
+      disk.read.bytes.rate_FSB2:\r
+      - FSB2\r
+      - disk.read.bytes.rate\r
+      disk.read.bytes_FSB2:\r
+      - FSB2\r
+      - disk.read.bytes\r
+      disk.capacity_FSB2:\r
+      - FSB2\r
+      - disk.capacity\r
+      disk.capacity_FSB1:\r
+      - FSB1\r
+      - disk.capacity\r
+      disk.read.bytes.rate_FSB1:\r
+      - FSB1\r
+      - disk.read.bytes.rate\r
+      disk.device.latency_FSB2:\r
+      - FSB2\r
+      - disk.device.latency\r
+      disk.device.latency_FSB1:\r
+      - FSB1\r
+      - disk.device.latency\r
+      disk.allocation_FSB2:\r
+      - FSB2\r
+      - disk.allocation\r
+      disk.device.capacity_FSB2:\r
+      - FSB2\r
+      - disk.device.capacity\r
+      disk.allocation_FSB1:\r
+      - FSB1\r
+      - disk.allocation\r
+      disk.read.bytes_FSB1:\r
+      - FSB1\r
+      - disk.read.bytes\r
+      disk.device.capacity_FSB1:\r
+      - FSB1\r
+      - disk.device.capacity\r
+      cpu_util_FSB2:\r
+      - FSB2\r
+      - cpu_util\r
+      cpu_util_FSB1:\r
+      - FSB1\r
+      - cpu_util\r
+      disk.device.write.requests.rate_FSB1:\r
+      - FSB1\r
+      - disk.device.write.requests.rate\r
+      network.outpoing.packets_VMI1:\r
+      - VMI1\r
+      - network.outpoing.packets\r
+      disk.root.size_FSB1:\r
+      - FSB1\r
+      - disk.root.size\r
+      feature_FSB1:\r
+      - FSB1\r
+      - feature\r
+      network.incoming.packets_VMI1:\r
+      - VMI1\r
+      - network.incoming.packets\r
+      feature_FSB2:\r
+      - FSB2\r
+      - feature\r
+      memory.resident_FSB2:\r
+      - FSB2\r
+      - memory.resident\r
+      memory.resident_FSB1:\r
+      - FSB1\r
+      - memory.resident\r
+      disk.write.requests.rate_FSB2:\r
+      - FSB2\r
+      - disk.write.requests.rate\r
+      cpu_FSB1:\r
+      - FSB1\r
+      - cpu\r
+      network.incoming.bytes_VMI1:\r
+      - VMI1\r
+      - network.incoming.bytes\r
+      disk.write.requests.rate_FSB1:\r
+      - FSB1\r
+      - disk.write.requests.rate\r
+      instance_FSB2:\r
+      - FSB2\r
+      - instance\r
+      cpu_FSB2:\r
+      - FSB2\r
+      - cpu\r
+      instance_FSB1:\r
+      - FSB1\r
+      - instance\r
+      disk.device.read.bytes.rate_FSB1:\r
+      - FSB1\r
+      - disk.device.read.bytes.rate\r
+      disk.device.read.bytes.rate_FSB2:\r
+      - FSB2\r
+      - disk.device.read.bytes.rate\r
+      network.outgoing.packets.rate_VMI1:\r
+      - VMI1\r
+      - network.outgoing.packets.rate\r
+      disk.root.size_FSB2:\r
+      - FSB2\r
+      - disk.root.size\r
+      feature_VMI1:\r
+      - VMI1\r
+      - feature\r
+      cpu.delta_FSB1:\r
+      - FSB1\r
+      - cpu.delta\r
+      cpu.delta_FSB2:\r
+      - FSB2\r
+      - cpu.delta\r
+      disk.write.bytes_FSB2:\r
+      - FSB2\r
+      - disk.write.bytes\r
+      disk.write.bytes_FSB1:\r
+      - FSB1\r
+      - disk.write.bytes\r
+      disk.device.read.requests.rate_FSB2:\r
+      - FSB2\r
+      - disk.device.read.requests.rate\r
+      disk.device.read.requests.rate_FSB1:\r
+      - FSB1\r
+      - disk.device.read.requests.rate\r
+      disk.ephemeral.size_FSB2:\r
+      - FSB2\r
+      - disk.ephemeral.size\r
+      disk.device.read.requests_FSB1:\r
+      - FSB1\r
+      - disk.device.read.requests\r
+      disk.device.read.requests_FSB2:\r
+      - FSB2\r
+      - disk.device.read.requests\r
+      disk.ephemeral.size_FSB1:\r
+      - FSB1\r
+      - disk.ephemeral.size\r
+      network.outgoing.bytes_VMI1:\r
+      - VMI1\r
+      - network.outgoing.bytes\r
+      binding_FSB1:\r
+      - FSB1\r
+      - binding\r
+      disk.device.write.bytes_FSB1:\r
+      - FSB1\r
+      - disk.device.write.bytes\r
+      binding_FSB2:\r
+      - FSB2\r
+      - binding\r
+      disk.device.write.bytes_FSB2:\r
+      - FSB2\r
+      - disk.device.write.bytes\r
+      memory_FSB1:\r
+      - FSB1\r
+      - memory\r
+      memory_FSB2:\r
+      - FSB2\r
+      - memory\r
+      disk.device.read.bytes_FSB2:\r
+      - FSB2\r
+      - disk.device.read.bytes\r
+      disk.device.read.bytes_FSB1:\r
+      - FSB1\r
+      - disk.device.read.bytes\r
+      disk.device.usage_FSB1:\r
+      - FSB1\r
+      - disk.device.usage\r
+      scalable_FSB2:\r
+      - FSB2\r
+      - scalable\r
+      disk.write.bytes.rate_FSB1:\r
+      - FSB1\r
+      - disk.write.bytes.rate\r
+      disk.write.bytes.rate_FSB2:\r
+      - FSB2\r
+      - disk.write.bytes.rate\r
+      disk.device.usage_FSB2:\r
+      - FSB2\r
+      - disk.device.usage\r
+      scalable_FSB1:\r
+      - FSB1\r
+      - scalable\r
+      disk.write.requests_FSB2:\r
+      - FSB2\r
+      - disk.write.requests\r
+      disk.usage_FSB1:\r
+      - FSB1\r
+      - disk.usage\r
+      os_FSB2:\r
+      - FSB2\r
+      - os\r
+      disk.usage_FSB2:\r
+      - FSB2\r
+      - disk.usage\r
+      host_FSB1:\r
+      - FSB1\r
+      - host\r
+      disk.device.allocation_FSB2:\r
+      - FSB2\r
+      - disk.device.allocation\r
+      disk.device.allocation_FSB1:\r
+      - FSB1\r
+      - disk.device.allocation\r
+      os_FSB1:\r
+      - FSB1\r
+      - os\r
+      vcpus_FSB1:\r
+      - FSB1\r
+      - vcpus\r
+      vcpus_FSB2:\r
+      - FSB2\r
+      - vcpus\r
+      host_FSB2:\r
+      - FSB2\r
+      - host\r
+      disk.write.requests_FSB1:\r
+      - FSB1\r
+      - disk.write.requests\r
+      disk.device.write.bytes.rate_FSB1:\r
+      - FSB1\r
+      - disk.device.write.bytes.rate\r
+      disk.device.write.bytes.rate_FSB2:\r
+      - FSB2\r
+      - disk.device.write.bytes.rate\r
+      endpoint_FSB1:\r
+      - FSB1\r
+      - endpoint\r
+      endpoint_FSB2:\r
+      - FSB2\r
+      - endpoint\r
+      forwarder_VMI1:\r
+      - VMI1\r
+      - forwarder\r
+      disk.latency_FSB1:\r
+      - FSB1\r
+      - disk.latency\r
+      disk.latency_FSB2:\r
+      - FSB2\r
+      - disk.latency\r
+      memory.usage_FSB1:\r
+      - FSB1\r
+      - memory.usage\r
+      network.outgoing.bytes.rate_VMI1:\r
+      - VMI1\r
+      - network.outgoing.bytes.rate\r
+      disk.read.requests_FSB2:\r
+      - FSB2\r
+      - disk.read.requests\r
+      disk.read.requests_FSB1:\r
+      - FSB1\r
+      - disk.read.requests\r
+      disk.device.write.requests_FSB1:\r
+      - FSB1\r
+      - disk.device.write.requests\r
+      disk.device.iops_FSB2:\r
+      - FSB2\r
+      - disk.device.iops\r
+      network.incoming.bytes.rate_VMI1:\r
+      - VMI1\r
+      - network.incoming.bytes.rate\r
+      disk.device.write.requests_FSB2:\r
+      - FSB2\r
+      - disk.device.write.requests\r
+      network.incoming.packets.rate_VMI1:\r
+      - VMI1\r
+      - network.incoming.packets.rate\r
+      disk.iops_FSB1:\r
+      - FSB1\r
+      - disk.iops\r
+      binding_VMI1:\r
+      - VMI1\r
+      - binding\r
+      memory.usage_FSB2:\r
+      - FSB2\r
+      - memory.usage\r
+      disk.device.iops_FSB1:\r
+      - FSB1\r
+      - disk.device.iops\r
+      disk.iops_FSB2:\r
+      - FSB2\r
+      - disk.iops\r
+    requirements:\r
+      dependency_FSB1:\r
+      - FSB1\r
+      - dependency\r
+      link_VMI1:\r
+      - VMI1\r
+      - link\r
+      dependency_FSB2:\r
+      - FSB2\r
+      - dependency\r
+      dependency_VMI1:\r
+      - VMI1\r
+      - dependency\r
+      local_storage_FSB1:\r
+      - FSB1\r
+      - local_storage\r
+      local_storage_FSB2:\r
+      - FSB2\r
+      - local_storage\r
+      binding_VMI1:\r
+      - VMI1\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/inputfiles/base_ep-jsa_net.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttr/getAttrUC/inputfiles/base_ep-jsa_net.yaml
new file mode 100644 (file)
index 0000000..516d92a
--- /dev/null
@@ -0,0 +1,22 @@
+heat_template_version: 2013-05-23\r
+\r
+description: >\r
+  Version 2.0 02-09-2016 (Authors: Paul Phillips, pp2854 PROD)\r
+\r
+parameters:\r
+  lb_st_interface_type_oam:\r
+    type: string\r
+\r
+\r
+resources:\r
+  template_VMInt_INT1_VLC:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count: 3\r
+      resource_def:\r
+        type: ep-jsa_net.yaml\r
+        properties:\r
+          virtual_machine_interface_properties:\r
+            {\r
+              virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },\r
+            }\r
\ No newline at end of file
index 9102044..8fc30c8 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.cgi_fw:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    vf_module_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: vf_module_id
-      type: string
-      description: Unique ID for this VF Module instance
-      default: dummy_vf_module_id
-    nimbus_hsl_interface_type:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: nimbus_hsl_interface_type
-      type: string
-      description: service_interface_type for ServiceInstance
-      default: other
-    cgi_fw_pt_vlan_VM2_name_fqdn:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_pt_vlan_VM2_name_fqdn
-      type: json
-      description: fqdn of the ServiceInstance in PortTuple Resource
-      default: [
-        ]
-    cgi_fw_vmi_ecmp_src_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_vmi_ecmp_src_ip
-      type: boolean
-      description: source_ip for the VirtualMachineInterface
-      default: true
-    cgi_fw_names:
-      label: Firewall VM Name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_names
-      type: list
-      description: Comma Delimited List of Names for ServiceInstance VMs
-      default:
-      - zsde1fcgi02fgi001
-      - zsde1fcgi02fgi002
-      entry_schema:
-        type: string
-    cgi_fw_vmi_ecmp_dst_ip:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_vmi_ecmp_dst_ip
-      type: boolean
-      description: destination_ip for the VirtualMachineInterface
-      default: true
-    sgi_direct_interface_type:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_direct_interface_type
-      type: string
-      description: service_interface_type for ServiceInstance
-      default: right
-    vnf_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: vnf_name
-      type: string
-      description: Unique name for this VF instance
-      default: zrdm3firstnetfcgi02
-    cgi_fw_flavor_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_flavor_name
-      type: string
-      description: flavor for the ServiceInstance VM
-      default: m1.xlarge
-    vf_module_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: vf_module_name
-      type: string
-      description: Unique name for this VF Module instance
-      default: zsde1fcgi02
-    cgi_fw_st_type:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_st_type
-      type: string
-      description: service_type for the ServiceTemplate
-      default: firewall
-    sgi_protected_net_dummy_fqdn:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_protected_net_dummy_fqdn
-      type: string
-      description: fq_name for the VirtualNetwork
-      default: default-domain:ALU-L3:firstnet_dummy_net_1
-    cgi_fw_vmi_ecmp_src_port:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_vmi_ecmp_src_port
-      type: boolean
-      description: source_port for the VirtualMachineInterface
-      default: false
-    sgi_protected_net_dummy1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_protected_net_dummy1
-      type: string
-      description: name for the VirtualNetwork
-    vnf_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: vnf_id
-      type: string
-      description: Unique ID for this VF instance
-      default: dummy_vnf_id
-    sgi_direct_net_fqdn:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_direct_net_fqdn
-      type: string
-      description: fq_name for the VirtualNetwork
-      default: default-domain:ALU-L3:fgi_direct
-    sgi_protected_interface_type:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_protected_interface_type
-      type: string
-      description: service_interface_type for ServiceInstance
-      default: left
-    cgi_fw_vmi_ecmp_dst_port:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_vmi_ecmp_dst_port
-      type: boolean
-      description: destination_port for the VirtualMachineInterface
-      default: false
-    sgi_direct_family_v6:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_direct_family_v6
-      type: string
-      description: IP Family Address for InstanceIp
-      default: v6
-    availability_zone_0:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: availability_zone_0
-      type: string
-      description: availability_zone for the ServiceInstance
-      default: nova
-    availability_zone_1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: availability_zone_1
-      type: string
-      description: availability_zone for the ServiceInstance
-      default: nova
-    nimbus_hsl_net_fqdn:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: nimbus_hsl_net_fqdn
-      type: string
-      description: fq_name for the VirtualNetwork
-      default: default-domain:ALU-L3:alu-firstnet-net
-    sgi_protected_net_dummy:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_protected_net_dummy
-      type: string
-      description: name for the VirtualNetwork
-      default: firstnet_dummy_net_1
-    cgi_fw_pt_vlan_VM1_name_fqdn:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_pt_vlan_VM1_name_fqdn
-      type: json
-      description: fqdn of the ServiceInstance in PortTuple Resource
-      default: [
-        ]
-    cgi_fw_vmi_ecmp_configured:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_vmi_ecmp_configured
-      type: boolean
-      description: hashing_configured for the VirtualMachineInterface
-      default: true
-    cgi_fw_vmi_ecmp_ip_protocol:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_vmi_ecmp_ip_protocol
-      type: boolean
-      description: ip_protocol for the VirtualMachineInterface
-      default: false
-    oam_protected_net_fqdn:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: oam_protected_net_fqdn
-      type: string
-      description: fq_name for the VirtualNetwork
-      default: default-domain:ALU-L3:alu_l3_mt_net
-    oam_protected_interface_type:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: oam_protected_interface_type
-      type: string
-      description: service_interface_type for ServiceInstance
-      default: management
-    cgi_fw_st_mode:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_st_mode
-      type: string
-      description: service_mode for the ServiceTemplate
-      default: in-network-nat
-    sgi_direct_ipv6_subnet_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_direct_ipv6_subnet_id
-      type: string
-      description: Subnet UUID for InstanceIp
-      default: 4560666e-f306-4d7b-b0ec-a2d4330e9600
-    contrail_vmi_subinterface:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: contrail_vmi_subinterface
-      type: string
-    port_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: port_name
-      type: string
-    cgi_fw_image_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_image_name
-      type: string
-      description: image_name for the ServiceInstance VM
-      default: F5_LB-FW_F5_12_1_HF1_Startup
-    cgi_fw_oam_protected_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_oam_protected_ips
-      type: list
-      description: the ips of the management network for CGI FW
-      default:
-      - 192.168.50.40
-      - 192.168.50.41
-      entry_schema:
-        type: string
-    sgi_direct_subnet_id:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: sgi_direct_subnet_id
-      type: string
-      description: Subnet UUID for InstanceIp
-      default: 63858a9d-696b-4731-b3b3-7c8dfd777b9e
-    domain:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: domain
-      type: string
-      description: domain for the ServiceTemplate
-      default: default-domain
-    cgi_fw_st_version:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_st_version
-      type: float
-      description: version for the ServiceTemplate
-      default: 2
-      constraints:
-      - in_range:
-        - 0
-        - 99
-    cgi_fw_st_virtualization_type:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: cgi_fw_st_virtualization_type
-      type: string
-      description: service_virtualization_type for the ServiceTemplate
-      default: virtual-machine
-    subinterface_name_prefix:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - base_firstnet_fgi_frwl
-            source_type: HEAT
-            param_name: subinterface_name_prefix
-      type: string
-  node_templates:
-    CGI_FW_OAM_PROTECTED_RVMI_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_1
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 1
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: oam_protected_net_fqdn
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: oam_protected_interface_type
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_2
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_SGI_DIRECT_RVMI_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_3
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 0
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: sgi_direct_net_fqdn
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: sgi_direct_interface_type
-        port_tuple_refs:
-          get_input: cgi_fw_pt_vlan_VM1_name_fqdn
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_1
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_OAM_PROTECTED_RVMI_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_1
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 0
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: oam_protected_net_fqdn
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: oam_protected_interface_type
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_1
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_SGI_DIRECT_RVMI_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_3
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 1
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: sgi_direct_net_fqdn
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: sgi_direct_interface_type
-        port_tuple_refs:
-          get_input: cgi_fw_pt_vlan_VM2_name_fqdn
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_2
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_NIMBUS_HSL_RVMI_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_4
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 1
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: nimbus_hsl_net_fqdn
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: nimbus_hsl_interface_type
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_2
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_NIMBUS_HSL_RVMI_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_4
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 0
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: nimbus_hsl_net_fqdn
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: nimbus_hsl_interface_type
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_1
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_SERVER_1:
-      type: org.openecomp.resource.vfc.nodes.heat.cgi_fw
-      properties:
-        flavor:
-          get_input: cgi_fw_flavor_name
-        availability_zone:
-          get_input: availability_zone_0
-        image:
-          get_input: cgi_fw_image_name
-        metadata:
-          vf_module_id:
-            get_input: vf_module_id
-          vnf_id:
-            get_input: vnf_id
-          vnf_name:
-            get_input: vnf_name
-          vf_module_name:
-            get_input: vf_module_name
-        contrail_service_instance_ind: true
-        name:
-          get_input:
-          - cgi_fw_names
-          - 0
-        scheduler_hints:
-          group: CGI_FW_RAG_group
-    CGI_FW_RSG_SI_1:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name:
-          str_replace:
-            template: VNF_NAME_sg_cgi_fw
-            params:
-              VNF_NAME:
-                get_input: vnf_name
-        description: Security Group of CGI FW ServiceInstance
-        rules:
-        - protocol: tcp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 0
-        - protocol: udp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 0
-        - protocol: '132'
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 0
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 0
-        - protocol: udp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 0
-        - protocol: '132'
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: egress
-          port_range_min: 0
-        - protocol: '58'
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: egress
-        - protocol: tcp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 0
-        - protocol: udp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 0
-        - protocol: '132'
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 0
-        - protocol: icmp
-          ethertype: IPv4
-          remote_ip_prefix: 0.0.0.0/0
-          direction: ingress
-        - protocol: tcp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 0
-        - protocol: udp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 0
-        - protocol: '132'
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          port_range_max: 65535
-          direction: ingress
-          port_range_min: 0
-        - protocol: '58'
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-    CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_dummy
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 1
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: sgi_protected_net_dummy_fqdn
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_2
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_vmi_dummy
-            params:
-              VM_NAME:
-                get_input:
-                - cgi_fw_names
-                - 0
-        security_group_refs:
-        - CGI_FW_RSG_SI_1
-        virtual_network_refs:
-        - get_input: sgi_protected_net_dummy_fqdn
-      requirements:
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: CGI_FW_SERVER_1
-          relationship: tosca.relationships.network.BindsTo
-    CGI_FW_SERVER_2:
-      type: org.openecomp.resource.vfc.nodes.heat.cgi_fw
-      properties:
-        flavor:
-          get_input: cgi_fw_flavor_name
-        availability_zone:
-          get_attribute:
-          - CGI_FW_SERVER_2
-          - addresses
-          - get_input:
-            - sgi_protected_net_dummy
-            - 0
-          - 0
-          - OS-EXT-IPS-MAC:mac_addr
-        image:
-          get_input: cgi_fw_image_name
-        metadata:
-          vf_module_id:
-            get_input: vf_module_id
-          vnf_id:
-            get_input: vnf_id
-          vnf_name:
-            get_input: vnf_name
-          vf_module_name:
-            get_input: vf_module_name
-        contrail_service_instance_ind: true
-        name:
-          get_input:
-          - cgi_fw_names
-          - 1
-        scheduler_hints:
-          group: CGI_FW_RAG_group
-    contrail_vmi_subinterface:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_PORT_3
-            params:
-              VM_NAME:
-                get_input: vipr_atm_name_0
-        virtual_network_refs:
-        - get_input: oam_protected_net_fqdn
-        virtual_machine_interface_properties:
-          service_interface_type: left
-        port_tuple_refs:
-        - get_input: port_name
-  groups:
-    CGI_FW_RAG_group:
-      type: tosca.groups.Root
-      members:
-      - CGI_FW_SERVER_1
-      - CGI_FW_SERVER_2
-    base_firstnet_fgi_frwl_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/base_firstnet_fgi_frwl.yml
-        description: |
-          HOT template to create SecurityGroup//ServerGroup//ServiceTemplate:
-      members:
-      - CGI_FW_OAM_PROTECTED_RVMI_2
-      - CGI_FW_SGI_DIRECT_RVMI_1
-      - CGI_FW_OAM_PROTECTED_RVMI_1
-      - CGI_FW_SGI_DIRECT_RVMI_2
-      - CGI_FW_NIMBUS_HSL_RVMI_2
-      - CGI_FW_NIMBUS_HSL_RVMI_1
-      - CGI_FW_SERVER_1
-      - CGI_FW_RSG_SI_1
-      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2
-      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1
-      - CGI_FW_SERVER_2
-      - contrail_vmi_subinterface
-  outputs:
-    cgi_fw_01_left_mac_10:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_2
-        - addresses
-        - str_split:
-          - ','
-          - get_attribute:
-            - contrail_vmi_subinterface
-            - virtual_machine_interface_allowed_address_pairs
-            - allowed_address_pair
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-    cgi_fw_st_name_fqdn:
-      description: FQDN of the FW_CGI ServiceTemplate
-      value:
-        list_join:
-        - ':'
-        - get_attr:
-          - CGI_FW_RST_1
-          - fq_name
-    VMA-EXT_IPS:
-      description: IP addresses assigned to the first external network.
-      value:
-      - UNSUPPORTED_ATTRIBUTE_CGI_FW_SERVER_2.{get_param=[vnf_id, {get_param=sgi_protected_interface_type}]}
-    VMA-DynamicResource:
-      description: IP addresses assigned to the first external network.
-      value:
-      - UNSUPPORTED_RESOURCE_{get_param=vnf_id}
-    cgi_fw_01_left_mac_7:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - contrail_vmi_subinterface
-        - virtual_machine_interface_properties
-    cgi_fw_01_left_mac_6:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_2
-        - addresses
-        - str_split:
-          - ','
-          - string,to,split
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-    cgi_fw_01_left_mac_9:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_2
-        - addresses
-        - str_split:
-          - ','
-          - get_input: sgi_protected_net_dummy
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-    cgi_fw_01_left_mac_8:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - contrail_vmi_subinterface
-        - virtual_machine_interface_allowed_address_pairs
-        - allowed_address_pair
-    cgi_fw_01_left_mac_3:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_2
-        - addresses
-        - get_input:
-          - sgi_protected_net_dummy
-          - 0
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-    cgi_fw_01_left_mac_2:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_2
-        - addresses
-        - get_input: sgi_protected_net_dummy
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-    cgi_fw_01_left_mac_5:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_2
-        - addresses
-        - get_attribute:
-          - CGI_FW_SERVER_2
-          - addresses
-          - get_input:
-            - sgi_protected_net_dummy
-            - 0
-          - 0
-          - OS-EXT-IPS-MAC:mac_addr
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-    cgi_fw_01_left_mac_4:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_2
-        - addresses
-        - get_input:
-          - sgi_protected_net_dummy
-          - 0
-          - get_input:
-            - sgi_protected_net_dummy1
-            - 1
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-    cgi_fw_01_left_mac_1:
-      description: cgi fw01 left interface Mac-Address
-      value:
-        get_attribute:
-        - CGI_FW_SERVER_1
-        - addresses
-        - get_input: sgi_protected_net_dummy
-        - 0
-        - OS-EXT-IPS-MAC:mac_addr
-  policies:
-    CGI_FW_RAG_policy:
-      type: org.openecomp.policies.placement.Antilocate
-      properties:
-        name:
-          str_replace:
-            template: VNF_NAME_srg_cgi_fw
-            params:
-              VNF_NAME:
-                get_input: vnf_name
-        container_type: host
-      targets:
-      - CGI_FW_RAG_group
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF Module instance\r
+      default: dummy_vf_module_id\r
+    nimbus_hsl_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: nimbus_hsl_interface_type\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+      default: other\r
+    cgi_fw_pt_vlan_VM2_name_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_pt_vlan_VM2_name_fqdn\r
+      type: json\r
+      description: fqdn of the ServiceInstance in PortTuple Resource\r
+      default: [\r
+        ]\r
+    cgi_fw_vmi_ecmp_src_ip:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_vmi_ecmp_src_ip\r
+      type: boolean\r
+      description: source_ip for the VirtualMachineInterface\r
+      default: true\r
+    cgi_fw_names:\r
+      label: Firewall VM Name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_names\r
+      type: list\r
+      description: Comma Delimited List of Names for ServiceInstance VMs\r
+      default:\r
+      - zsde1fcgi02fgi001\r
+      - zsde1fcgi02fgi002\r
+      entry_schema:\r
+        type: string\r
+    cgi_fw_vmi_ecmp_dst_ip:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_vmi_ecmp_dst_ip\r
+      type: boolean\r
+      description: destination_ip for the VirtualMachineInterface\r
+      default: true\r
+    sgi_direct_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_direct_interface_type\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+      default: right\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+      default: zrdm3firstnetfcgi02\r
+    cgi_fw_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_flavor_name\r
+      type: string\r
+      description: flavor for the ServiceInstance VM\r
+      default: m1.xlarge\r
+    vf_module_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: vf_module_name\r
+      type: string\r
+      description: Unique name for this VF Module instance\r
+      default: zsde1fcgi02\r
+    cgi_fw_st_type:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_st_type\r
+      type: string\r
+      description: service_type for the ServiceTemplate\r
+      default: firewall\r
+    sgi_protected_net_dummy_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_protected_net_dummy_fqdn\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+      default: default-domain:ALU-L3:firstnet_dummy_net_1\r
+    cgi_fw_vmi_ecmp_src_port:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_vmi_ecmp_src_port\r
+      type: boolean\r
+      description: source_port for the VirtualMachineInterface\r
+      default: false\r
+    sgi_protected_net_dummy1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_protected_net_dummy1\r
+      type: string\r
+      description: name for the VirtualNetwork\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF instance\r
+      default: dummy_vnf_id\r
+    sgi_direct_net_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_direct_net_fqdn\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+      default: default-domain:ALU-L3:fgi_direct\r
+    sgi_protected_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_protected_interface_type\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+      default: left\r
+    cgi_fw_vmi_ecmp_dst_port:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_vmi_ecmp_dst_port\r
+      type: boolean\r
+      description: destination_port for the VirtualMachineInterface\r
+      default: false\r
+    sgi_direct_family_v6:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_direct_family_v6\r
+      type: string\r
+      description: IP Family Address for InstanceIp\r
+      default: v6\r
+    availability_zone_0:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: availability_zone_0\r
+      type: string\r
+      description: availability_zone for the ServiceInstance\r
+      default: nova\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: availability_zone for the ServiceInstance\r
+      default: nova\r
+    nimbus_hsl_net_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: nimbus_hsl_net_fqdn\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+      default: default-domain:ALU-L3:alu-firstnet-net\r
+    sgi_protected_net_dummy:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_protected_net_dummy\r
+      type: string\r
+      description: name for the VirtualNetwork\r
+      default: firstnet_dummy_net_1\r
+    cgi_fw_pt_vlan_VM1_name_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_pt_vlan_VM1_name_fqdn\r
+      type: json\r
+      description: fqdn of the ServiceInstance in PortTuple Resource\r
+      default: [\r
+        ]\r
+    cgi_fw_vmi_ecmp_configured:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_vmi_ecmp_configured\r
+      type: boolean\r
+      description: hashing_configured for the VirtualMachineInterface\r
+      default: true\r
+    cgi_fw_vmi_ecmp_ip_protocol:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_vmi_ecmp_ip_protocol\r
+      type: boolean\r
+      description: ip_protocol for the VirtualMachineInterface\r
+      default: false\r
+    oam_protected_net_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: oam_protected_net_fqdn\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+      default: default-domain:ALU-L3:alu_l3_mt_net\r
+    oam_protected_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: oam_protected_interface_type\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+      default: management\r
+    cgi_fw_st_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_st_mode\r
+      type: string\r
+      description: service_mode for the ServiceTemplate\r
+      default: in-network-nat\r
+    sgi_direct_ipv6_subnet_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_direct_ipv6_subnet_id\r
+      type: string\r
+      description: Subnet UUID for InstanceIp\r
+      default: 4560666e-f306-4d7b-b0ec-a2d4330e9600\r
+    contrail_vmi_subinterface:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: contrail_vmi_subinterface\r
+      type: string\r
+    port_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: port_name\r
+      type: string\r
+    cgi_fw_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_image_name\r
+      type: string\r
+      description: image_name for the ServiceInstance VM\r
+      default: F5_LB-FW_F5_12_1_HF1_Startup\r
+    cgi_fw_oam_protected_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_oam_protected_ips\r
+      type: list\r
+      description: the ips of the management network for CGI FW\r
+      default:\r
+      - 192.168.50.40\r
+      - 192.168.50.41\r
+      entry_schema:\r
+        type: string\r
+    sgi_direct_subnet_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: sgi_direct_subnet_id\r
+      type: string\r
+      description: Subnet UUID for InstanceIp\r
+      default: 63858a9d-696b-4731-b3b3-7c8dfd777b9e\r
+    domain:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: domain\r
+      type: string\r
+      description: domain for the ServiceTemplate\r
+      default: default-domain\r
+    cgi_fw_st_version:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_st_version\r
+      type: float\r
+      description: version for the ServiceTemplate\r
+      default: 2\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 99\r
+    cgi_fw_st_virtualization_type:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: cgi_fw_st_virtualization_type\r
+      type: string\r
+      description: service_virtualization_type for the ServiceTemplate\r
+      default: virtual-machine\r
+    subinterface_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - base_firstnet_fgi_frwl\r
+            source_type: HEAT\r
+            param_name: subinterface_name_prefix\r
+      type: string\r
+  node_templates:\r
+    template_VMInt_INT1_VLC:\r
+      type: org.openecomp.resource.abstract.nodes.heat.firstnet_fgi_frwl\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: firstnet_fgi_frwlServiceTemplate.yaml\r
+          count: 3\r
+          mandatory: true\r
+        virtual_machine_interface_properties:\r
+          virtual_machine_interface_properties_service_interface_type:\r
+            get_input: contrail_vmi_subinterface\r
+  groups:\r
+    base_firstnet_fgi_frwl_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/base_firstnet_fgi_frwl.yml\r
+        description: |\r
+          HOT template to create SecurityGroup//ServerGroup//ServiceTemplate:\r
+      members:\r
+      - template_VMInt_INT1_VLC\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/expectedoutputfiles/firstnet_fgi_frwlServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/expectedoutputfiles/firstnet_fgi_frwlServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..42fe5a2
--- /dev/null
@@ -0,0 +1,1365 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: firstnet_fgi_frwl\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.cgi_fw:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique ID for this VF Module instance\r
+    nimbus_hsl_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+    cgi_fw_pt_vlan_VM2_name_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      type: json\r
+      description: fqdn of the ServiceInstance in PortTuple Resource\r
+    cgi_fw_vmi_ecmp_src_ip:\r
+      hidden: false\r
+      immutable: false\r
+      type: boolean\r
+      description: source_ip for the VirtualMachineInterface\r
+    cgi_fw_names:\r
+      label: Firewall VM Name\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: Comma Delimited List of Names for ServiceInstance VMs\r
+      entry_schema:\r
+        type: string\r
+    cgi_fw_vmi_ecmp_dst_ip:\r
+      hidden: false\r
+      immutable: false\r
+      type: boolean\r
+      description: destination_ip for the VirtualMachineInterface\r
+    sgi_direct_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    cgi_fw_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: flavor for the ServiceInstance VM\r
+    vf_module_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique name for this VF Module instance\r
+    cgi_fw_st_type:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_type for the ServiceTemplate\r
+    sgi_protected_net_dummy_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+    cgi_fw_vmi_ecmp_src_port:\r
+      hidden: false\r
+      immutable: false\r
+      type: boolean\r
+      description: source_port for the VirtualMachineInterface\r
+    sgi_protected_net_dummy1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: name for the VirtualNetwork\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Unique ID for this VF instance\r
+    sgi_direct_net_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+    sgi_protected_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+    cgi_fw_vmi_ecmp_dst_port:\r
+      hidden: false\r
+      immutable: false\r
+      type: boolean\r
+      description: destination_port for the VirtualMachineInterface\r
+    sgi_direct_family_v6:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IP Family Address for InstanceIp\r
+    availability_zone_0:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availability_zone for the ServiceInstance\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: availability_zone for the ServiceInstance\r
+    nimbus_hsl_net_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+    sgi_protected_net_dummy:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: name for the VirtualNetwork\r
+    cgi_fw_pt_vlan_VM1_name_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      type: json\r
+      description: fqdn of the ServiceInstance in PortTuple Resource\r
+    cgi_fw_vmi_ecmp_configured:\r
+      hidden: false\r
+      immutable: false\r
+      type: boolean\r
+      description: hashing_configured for the VirtualMachineInterface\r
+    cgi_fw_vmi_ecmp_ip_protocol:\r
+      hidden: false\r
+      immutable: false\r
+      type: boolean\r
+      description: ip_protocol for the VirtualMachineInterface\r
+    oam_protected_net_fqdn:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: fq_name for the VirtualNetwork\r
+    oam_protected_interface_type:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_interface_type for ServiceInstance\r
+    cgi_fw_st_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_mode for the ServiceTemplate\r
+    sgi_direct_ipv6_subnet_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Subnet UUID for InstanceIp\r
+    contrail_vmi_subinterface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    port_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+    cgi_fw_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: image_name for the ServiceInstance VM\r
+    cgi_fw_oam_protected_ips:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: the ips of the management network for CGI FW\r
+      entry_schema:\r
+        type: string\r
+    sgi_direct_subnet_id:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Subnet UUID for InstanceIp\r
+    domain:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: domain for the ServiceTemplate\r
+    cgi_fw_st_version:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: version for the ServiceTemplate\r
+      constraints:\r
+      - in_range:\r
+        - 0\r
+        - 99\r
+    cgi_fw_st_virtualization_type:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: service_virtualization_type for the ServiceTemplate\r
+    subinterface_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+  node_templates:\r
+    CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_1\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 1\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: oam_protected_net_fqdn\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: oam_protected_interface_type\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_SGI_DIRECT_RVMI_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_3\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 0\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: sgi_direct_net_fqdn\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: sgi_direct_interface_type\r
+        port_tuple_refs:\r
+          get_input: cgi_fw_pt_vlan_VM1_name_fqdn\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_1\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 0\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: oam_protected_net_fqdn\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: oam_protected_interface_type\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_SGI_DIRECT_RVMI_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_3\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 1\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: sgi_direct_net_fqdn\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: sgi_direct_interface_type\r
+        port_tuple_refs:\r
+          get_input: cgi_fw_pt_vlan_VM2_name_fqdn\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_4\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 1\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: nimbus_hsl_net_fqdn\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: nimbus_hsl_interface_type\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_4\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 0\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: nimbus_hsl_net_fqdn\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: nimbus_hsl_interface_type\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_SERVER_1:\r
+      type: org.openecomp.resource.vfc.nodes.heat.cgi_fw\r
+      properties:\r
+        flavor:\r
+          get_input: cgi_fw_flavor_name\r
+        availability_zone:\r
+          get_input: availability_zone_0\r
+        image:\r
+          get_input: cgi_fw_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+          vf_module_name:\r
+            get_input: vf_module_name\r
+        contrail_service_instance_ind: true\r
+        name:\r
+          get_input:\r
+          - cgi_fw_names\r
+          - 0\r
+        scheduler_hints:\r
+          group: CGI_FW_RAG_group\r
+    CGI_FW_RSG_SI_1:\r
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VNF_NAME_sg_cgi_fw\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+        description: Security Group of CGI FW ServiceInstance\r
+        rules:\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 0\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 0\r
+        - protocol: '132'\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 0\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 0\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 0\r
+        - protocol: '132'\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: egress\r
+          port_range_min: 0\r
+        - protocol: '58'\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: egress\r
+        - protocol: tcp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 0\r
+        - protocol: udp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 0\r
+        - protocol: '132'\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 0\r
+        - protocol: icmp\r
+          ethertype: IPv4\r
+          remote_ip_prefix: 0.0.0.0/0\r
+          direction: ingress\r
+        - protocol: tcp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 0\r
+        - protocol: udp\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 0\r
+        - protocol: '132'\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          port_range_max: 65535\r
+          direction: ingress\r
+          port_range_min: 0\r
+        - protocol: '58'\r
+          ethertype: IPv6\r
+          remote_ip_prefix: ::/0\r
+          direction: ingress\r
+    CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_dummy\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 1\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: sgi_protected_net_dummy_fqdn\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_vmi_dummy\r
+            params:\r
+              VM_NAME:\r
+                get_input:\r
+                - cgi_fw_names\r
+                - 0\r
+        security_group_refs:\r
+        - CGI_FW_RSG_SI_1\r
+        virtual_network_refs:\r
+        - get_input: sgi_protected_net_dummy_fqdn\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: CGI_FW_SERVER_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    CGI_FW_SERVER_2:\r
+      type: org.openecomp.resource.vfc.nodes.heat.cgi_fw\r
+      properties:\r
+        flavor:\r
+          get_input: cgi_fw_flavor_name\r
+        availability_zone:\r
+          get_attribute:\r
+          - CGI_FW_SERVER_2\r
+          - addresses\r
+          - get_input:\r
+            - sgi_protected_net_dummy\r
+            - 0\r
+          - 0\r
+          - OS-EXT-IPS-MAC:mac_addr\r
+        image:\r
+          get_input: cgi_fw_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+          vf_module_name:\r
+            get_input: vf_module_name\r
+        contrail_service_instance_ind: true\r
+        name:\r
+          get_input:\r
+          - cgi_fw_names\r
+          - 1\r
+        scheduler_hints:\r
+          group: CGI_FW_RAG_group\r
+    contrail_vmi_subinterface:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAME_PORT_3\r
+            params:\r
+              VM_NAME:\r
+                get_input: vipr_atm_name_0\r
+        virtual_network_refs:\r
+        - get_input: oam_protected_net_fqdn\r
+        virtual_machine_interface_properties:\r
+          service_interface_type: left\r
+        port_tuple_refs:\r
+        - get_input: port_name\r
+  groups:\r
+    CGI_FW_RAG_group:\r
+      type: tosca.groups.Root\r
+      members:\r
+      - CGI_FW_SERVER_1\r
+      - CGI_FW_SERVER_2\r
+    firstnet_fgi_frwl_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/firstnet_fgi_frwl.yml\r
+        description: |\r
+          HOT template to create SecurityGroup//ServerGroup//ServiceTemplate:\r
+      members:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - CGI_FW_SERVER_1\r
+      - CGI_FW_RSG_SI_1\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - CGI_FW_SERVER_2\r
+      - contrail_vmi_subinterface\r
+  outputs:\r
+    cgi_fw_01_left_mac_10:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_2\r
+        - addresses\r
+        - str_split:\r
+          - ','\r
+          - get_attribute:\r
+            - contrail_vmi_subinterface\r
+            - virtual_machine_interface_allowed_address_pairs\r
+            - allowed_address_pair\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_st_name_fqdn:\r
+      description: FQDN of the FW_CGI ServiceTemplate\r
+      value:\r
+        list_join:\r
+        - ':'\r
+        - get_attr:\r
+          - CGI_FW_RST_1\r
+          - fq_name\r
+    cgi_fw_sec_grp_id:\r
+      description: uuid of the security group\r
+      value: CGI_FW_RSG_SI_1\r
+    VMA-EXT_IPS:\r
+      description: IP addresses assigned to the first external network.\r
+      value:\r
+      - UNSUPPORTED_ATTRIBUTE_CGI_FW_SERVER_2.{get_param=[vnf_id, {get_param=sgi_protected_interface_type}]}\r
+    VMA-DynamicResource:\r
+      description: IP addresses assigned to the first external network.\r
+      value:\r
+      - UNSUPPORTED_RESOURCE_{get_param=vnf_id}\r
+    cgi_fw_01_left_mac_7:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - contrail_vmi_subinterface\r
+        - virtual_machine_interface_properties\r
+    cgi_fw_01_left_mac_6:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_2\r
+        - addresses\r
+        - str_split:\r
+          - ','\r
+          - string,to,split\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_01_left_mac_9:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_2\r
+        - addresses\r
+        - str_split:\r
+          - ','\r
+          - get_input: sgi_protected_net_dummy\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_01_left_mac_8:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - contrail_vmi_subinterface\r
+        - virtual_machine_interface_allowed_address_pairs\r
+        - allowed_address_pair\r
+    cgi_fw_01_left_mac_3:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_2\r
+        - addresses\r
+        - get_input:\r
+          - sgi_protected_net_dummy\r
+          - 0\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_01_left_mac_2:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_2\r
+        - addresses\r
+        - get_input: sgi_protected_net_dummy\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_01_left_mac_5:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_2\r
+        - addresses\r
+        - get_attribute:\r
+          - CGI_FW_SERVER_2\r
+          - addresses\r
+          - get_input:\r
+            - sgi_protected_net_dummy\r
+            - 0\r
+          - 0\r
+          - OS-EXT-IPS-MAC:mac_addr\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_01_left_mac_4:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_2\r
+        - addresses\r
+        - get_input:\r
+          - sgi_protected_net_dummy\r
+          - 0\r
+          - get_input:\r
+            - sgi_protected_net_dummy1\r
+            - 1\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_left_vmi_id_1:\r
+      description: uuid of the right dummy interface\r
+      value: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+    cgi_fw_01_left_mac_1:\r
+      description: cgi fw01 left interface Mac-Address\r
+      value:\r
+        get_attribute:\r
+        - CGI_FW_SERVER_1\r
+        - addresses\r
+        - get_input: sgi_protected_net_dummy\r
+        - 0\r
+        - OS-EXT-IPS-MAC:mac_addr\r
+    cgi_fw_left_vmi_id_2:\r
+      description: uuid of the right dummy interface\r
+      value: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.firstnet_fgi_frwl\r
+    capabilities:\r
+      feature_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - feature\r
+      feature_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - feature\r
+      cpu_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - cpu\r
+      network.outgoing.bytes_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.outgoing.bytes\r
+      cpu_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - cpu\r
+      network.outgoing.bytes_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.outgoing.bytes\r
+      instance_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - instance\r
+      os_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - os\r
+      disk.write.bytes_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.write.bytes\r
+      os_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - os\r
+      disk.write.bytes_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.write.bytes\r
+      network.incoming.packets_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.incoming.packets\r
+      network.incoming.packets_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.incoming.packets\r
+      binding_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - binding\r
+      binding_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - binding\r
+      network.incoming.packets.rate_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets.rate_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.incoming.packets.rate\r
+      network.incoming.bytes.rate_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.incoming.bytes.rate\r
+      disk.capacity_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.capacity\r
+      disk.read.requests_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.read.requests\r
+      disk.read.requests_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.read.requests\r
+      disk.capacity_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.capacity\r
+      forwarder_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - forwarder\r
+      disk.device.write.bytes_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.write.bytes\r
+      network.incoming.packets.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.incoming.packets.rate\r
+      network.incoming.packets.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.incoming.packets.rate\r
+      network.incoming.bytes_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.incoming.bytes\r
+      disk.ephemeral.size_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.ephemeral.size\r
+      network.incoming.packets.rate_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.incoming.packets.rate\r
+      disk.device.capacity_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.capacity\r
+      network.incoming.packets.rate_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.incoming.packets.rate\r
+      network.incoming.bytes_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.incoming.bytes\r
+      disk.ephemeral.size_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.ephemeral.size\r
+      disk.device.capacity_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.capacity\r
+      network.outgoing.packets.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.packets.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.outgoing.packets.rate\r
+      disk.device.write.bytes.rate_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.write.bytes.rate\r
+      disk.allocation_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.allocation\r
+      network.outgoing.packets.rate_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.outgoing.packets.rate\r
+      disk.device.iops_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.iops\r
+      disk.allocation_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.allocation\r
+      disk.device.write.bytes.rate_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.write.bytes.rate\r
+      disk.device.iops_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.iops\r
+      network.outgoing.bytes_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.outgoing.bytes\r
+      network.outgoing.packets.rate_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.outgoing.packets.rate\r
+      network.outgoing.bytes_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.outgoing.bytes\r
+      feature_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - feature\r
+      feature_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - feature\r
+      disk.device.read.bytes.rate_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.read.bytes.rate\r
+      instance_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - instance\r
+      disk.device.read.bytes.rate_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.read.bytes.rate\r
+      network.incoming.packets_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.incoming.packets\r
+      binding_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - binding\r
+      network.incoming.packets_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.incoming.packets\r
+      binding_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - binding\r
+      disk.device.read.requests_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.read.requests\r
+      host_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - host\r
+      disk.write.requests_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.write.requests\r
+      network.incoming.bytes_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.incoming.bytes\r
+      host_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - host\r
+      disk.write.requests_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.write.requests\r
+      feature_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - feature\r
+      feature_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - feature\r
+      network.outgoing.bytes_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.outgoing.bytes\r
+      network.outgoing.bytes_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.outgoing.bytes\r
+      disk.root.size_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.root.size\r
+      disk.root.size_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.root.size\r
+      disk.write.bytes.rate_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.write.bytes.rate\r
+      disk.read.bytes_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.read.bytes\r
+      disk.write.bytes.rate_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.write.bytes.rate\r
+      disk.read.bytes_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.read.bytes\r
+      disk.device.read.bytes_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.read.bytes\r
+      network.incoming.packets.rate_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.incoming.packets.rate\r
+      disk.device.read.bytes_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.read.bytes\r
+      network.incoming.packets.rate_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.incoming.packets.rate\r
+      scalable_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - scalable\r
+      disk.device.write.bytes_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.write.bytes\r
+      network.incoming.bytes_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.incoming.bytes\r
+      network.incoming.bytes_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.incoming.bytes\r
+      scalable_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - scalable\r
+      disk.write.requests.rate_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.write.requests.rate\r
+      disk.write.requests.rate_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.write.requests.rate\r
+      network.incoming.packets_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.incoming.packets\r
+      network.outpoing.packets_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.outpoing.packets\r
+      forwarder_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - forwarder\r
+      network.outpoing.packets_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.outpoing.packets\r
+      network.outgoing.bytes.rate_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.packets.rate_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.outgoing.packets.rate\r
+      forwarder_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - forwarder\r
+      disk.device.allocation_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.allocation\r
+      disk.device.usage_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.usage\r
+      disk.device.allocation_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.allocation\r
+      disk.device.usage_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.usage\r
+      network.outgoing.bytes_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.outgoing.bytes\r
+      feature_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - feature\r
+      network.outgoing.bytes_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.outgoing.bytes\r
+      network.outgoing.packets.rate_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.outgoing.packets.rate\r
+      network.incoming.packets_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.incoming.packets\r
+      feature_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - feature\r
+      network.outgoing.bytes.rate_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.packets_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.incoming.packets\r
+      disk.iops_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.iops\r
+      network.outpoing.packets_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.outpoing.packets\r
+      disk.iops_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.iops\r
+      endpoint_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - endpoint\r
+      network.outpoing.packets_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.outpoing.packets\r
+      binding_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - binding\r
+      network.outgoing.bytes.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.outgoing.bytes.rate\r
+      network.incoming.packets_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.incoming.packets\r
+      binding_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - binding\r
+      memory_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - memory\r
+      cpu.delta_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - cpu.delta\r
+      network.incoming.bytes.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.incoming.bytes.rate\r
+      network.incoming.bytes.rate_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.incoming.bytes.rate\r
+      memory_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - memory\r
+      cpu.delta_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - cpu.delta\r
+      network.outpoing.packets_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.outpoing.packets\r
+      memory.usage_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - memory.usage\r
+      network.outpoing.packets_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.outpoing.packets\r
+      memory.usage_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - memory.usage\r
+      network.incoming.packets_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.incoming.packets\r
+      network.outgoing.bytes.rate_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.outgoing.bytes.rate\r
+      feature_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - feature\r
+      feature_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - feature\r
+      network.incoming.bytes.rate_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - network.incoming.bytes.rate\r
+      disk.latency_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.latency\r
+      forwarder_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - forwarder\r
+      vcpus_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - vcpus\r
+      forwarder_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - forwarder\r
+      disk.latency_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.latency\r
+      network.incoming.bytes.rate_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - network.incoming.bytes.rate\r
+      feature_CGI_FW_RSG_SI_1:\r
+      - CGI_FW_RSG_SI_1\r
+      - feature\r
+      network.outgoing.packets.rate_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.outgoing.packets.rate\r
+      disk.device.write.requests_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.write.requests\r
+      network.outgoing.packets.rate_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.outgoing.packets.rate\r
+      endpoint_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - endpoint\r
+      disk.device.write.requests_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.write.requests\r
+      network.outgoing.bytes.rate_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.outgoing.bytes.rate\r
+      network.outgoing.bytes.rate_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.outgoing.bytes.rate\r
+      vcpus_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - vcpus\r
+      disk.device.read.requests_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.read.requests\r
+      disk.device.write.requests.rate_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.write.requests.rate\r
+      disk.device.write.requests.rate_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.write.requests.rate\r
+      network.outgoing.bytes.rate_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.outgoing.bytes.rate\r
+      memory.resident_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - memory.resident\r
+      network.incoming.bytes_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - network.incoming.bytes\r
+      binding_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - binding\r
+      network.incoming.bytes_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - network.incoming.bytes\r
+      binding_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - binding\r
+      binding_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - binding\r
+      binding_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - binding\r
+      network.incoming.bytes.rate_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.incoming.bytes.rate\r
+      memory.resident_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - memory.resident\r
+      network.incoming.bytes.rate_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.incoming.bytes.rate\r
+      network.outpoing.packets_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - network.outpoing.packets\r
+      network.outpoing.packets_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.outpoing.packets\r
+      feature_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - feature\r
+      disk.device.read.requests.rate_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.read.requests.rate\r
+      disk.device.read.requests.rate_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.read.requests.rate\r
+      binding_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - binding\r
+      network.incoming.bytes.rate_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - network.incoming.bytes.rate\r
+      disk.device.latency_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.device.latency\r
+      disk.device.latency_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.device.latency\r
+      network.incoming.bytes.rate_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - network.incoming.bytes.rate\r
+      network.outgoing.packets.rate_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.outgoing.packets.rate\r
+      forwarder_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - forwarder\r
+      forwarder_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - forwarder\r
+      forwarder_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - forwarder\r
+      cpu_util_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - cpu_util\r
+      cpu_util_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - cpu_util\r
+      network.incoming.packets.rate_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.incoming.packets.rate\r
+      disk.usage_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.usage\r
+      disk.read.bytes.rate_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.read.bytes.rate\r
+      disk.read.bytes.rate_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - disk.read.bytes.rate\r
+      disk.usage_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - disk.usage\r
+      network.outgoing.bytes_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - network.outgoing.bytes\r
+      forwarder_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - forwarder\r
+    requirements:\r
+      dependency_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - dependency\r
+      dependency_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - dependency\r
+      dependency_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - dependency\r
+      dependency_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - dependency\r
+      dependency_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - dependency\r
+      dependency_CGI_FW_RSG_SI_1:\r
+      - CGI_FW_RSG_SI_1\r
+      - dependency\r
+      link_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - link\r
+      dependency_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - dependency\r
+      dependency_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - dependency\r
+      link_CGI_FW_SGI_DIRECT_RVMI_2:\r
+      - CGI_FW_SGI_DIRECT_RVMI_2\r
+      - link\r
+      link_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - link\r
+      binding_contrail_vmi_subinterface:\r
+      - contrail_vmi_subinterface\r
+      - binding\r
+      link_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - link\r
+      local_storage_CGI_FW_SERVER_2:\r
+      - CGI_FW_SERVER_2\r
+      - local_storage\r
+      link_CGI_FW_OAM_PROTECTED_RVMI_2:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_2\r
+      - link\r
+      link_CGI_FW_OAM_PROTECTED_RVMI_1:\r
+      - CGI_FW_OAM_PROTECTED_RVMI_1\r
+      - link\r
+      local_storage_CGI_FW_SERVER_1:\r
+      - CGI_FW_SERVER_1\r
+      - local_storage\r
+      dependency_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - dependency\r
+      dependency_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - dependency\r
+      link_CGI_FW_SGI_DIRECT_RVMI_1:\r
+      - CGI_FW_SGI_DIRECT_RVMI_1\r
+      - link\r
+      link_CGI_FW_NIMBUS_HSL_RVMI_2:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_2\r
+      - link\r
+      link_CGI_FW_NIMBUS_HSL_RVMI_1:\r
+      - CGI_FW_NIMBUS_HSL_RVMI_1\r
+      - link\r
+      port_CGI_FW_RSG_SI_1:\r
+      - CGI_FW_RSG_SI_1\r
+      - port\r
+      dependency_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2\r
+      - dependency\r
+      dependency_CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:\r
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1\r
+      - dependency\r
+  policies:\r
+    CGI_FW_RAG_policy:\r
+      type: org.openecomp.policies.placement.Antilocate\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VNF_NAME_srg_cgi_fw\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+        container_type: host\r
+      targets:\r
+      - CGI_FW_RAG_group\r
\ No newline at end of file
index a4168d9..875549f 100644 (file)
@@ -1,10 +1,10 @@
 {
-    "name": "", 
-    "description": "", 
+    "name": "",
+    "description": "",
     "data": [
         {
             "file": "base_firstnet_fgi_frwl.yml",
-            "type": "HEAT", 
+            "type": "HEAT",
             "isBase": "true",
             "data": [
                 {
                     "type": "HEAT_ENV"
                 }
             ]
+        },
+        {
+            "file": "firstnet_fgi_frwl.yml",
+            "type": "HEAT",
+            "isBase": "false"
         }
     ]
 }
\ No newline at end of file
index 59a8f0a..57e3e17 100644 (file)
-heat_template_version: 2015-04-30
-#FIRSTNET - FW -FGI// Contrail 3.0 Version 2 Template
-#AUTHORS: Rajesh Anne (ja702x)
-description: >
-  HOT template to create SecurityGroup//ServerGroup//ServiceTemplate:
-
-#####################
-parameters:
-#####################
-
-## GLOBAL//Basic Parameters
-## OPENECOMP VNF//VM Parameters
-  vnf_name:
-    type: string
-    description: Unique name for this VF instance
-#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
-
-  domain:
-    type: string
-    description: domain for the ServiceTemplate
-#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
-  vnf_id:
-    type: string
-    description: Unique ID for this VF instance
-#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
-  vf_module_id:
-    type: string
-    description: Unique ID for this VF Module instance
-#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
-  vf_module_name:
-    type: string
-    description: Unique name for this VF Module instance
-#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC 
-## GLOBAL//Network Parameters
-  sgi_protected_interface_type:
-    type: string
-    description: service_interface_type for ServiceInstance
-  sgi_direct_interface_type:
-    type: string
-    description: service_interface_type for ServiceInstance
-  oam_protected_net_fqdn:
-    type: string
-    description: fq_name for the VirtualNetwork
-  sgi_protected_net_dummy:
-    type: string
-    description: name for the VirtualNetwork
-  sgi_protected_net_dummy1:
-    type: string
-    description: name for the VirtualNetwork
-  sgi_protected_net_dummy_fqdn:
-    type: string
-    description: fq_name for the VirtualNetwork
-  sgi_direct_net_fqdn:
-    type: string
-    description: fq_name for the VirtualNetwork
-  nimbus_hsl_net_fqdn:
-    type: string
-    description: fq_name for the VirtualNetwork
-  oam_protected_interface_type:
-    type: string
-    description: service_interface_type for ServiceInstance
-
-  nimbus_hsl_interface_type:
-    type: string
-    description: service_interface_type for ServiceInstance
-## PT//PortTuple Parameters
-  cgi_fw_pt_vlan_VM1_name_fqdn:
-    type: json
-    description: fqdn of the ServiceInstance in PortTuple Resource
-  cgi_fw_pt_vlan_VM2_name_fqdn:
-    type: json
-    description: fqdn of the ServiceInstance in PortTuple Resource
-## ST//ServiceTemplate Parameters
-  cgi_fw_st_version:
-    type: number
-    description: version for the ServiceTemplate
-    constraints:
-      - range: { min: 0, max: 99 }
-        description: Must be a number between 0 and 99
-  cgi_fw_st_mode:
-    type: string
-    description: service_mode for the ServiceTemplate
-  cgi_fw_st_type:
-    type: string
-    description: service_type for the ServiceTemplate
-  cgi_fw_st_virtualization_type:
-    type: string
-    description: service_virtualization_type for the ServiceTemplate
-## VMI//VirtualMachineInterface ECMP Parameters
-  cgi_fw_vmi_ecmp_configured:
-    type: boolean
-    description: hashing_configured for the VirtualMachineInterface
-  cgi_fw_vmi_ecmp_src_ip:
-    type: boolean
-    description: source_ip for the VirtualMachineInterface
-  cgi_fw_vmi_ecmp_dst_ip:
-    type: boolean
-    description: destination_ip for the VirtualMachineInterface
-  cgi_fw_vmi_ecmp_ip_protocol:
-    type: boolean
-    description: ip_protocol for the VirtualMachineInterface
-  cgi_fw_vmi_ecmp_src_port:
-    type: boolean
-    description: source_port for the VirtualMachineInterface
-  cgi_fw_vmi_ecmp_dst_port:
-    type: boolean
-    description: destination_port for the VirtualMachineInterface
-## II//InstanceIp
-  sgi_direct_family_v6:
-    type: string
-    description: IP Family Address for InstanceIp
-  sgi_direct_subnet_id:
-    type: string
-    description: Subnet UUID for InstanceIp
-  sgi_direct_ipv6_subnet_id:
-    type: string
-    description: Subnet UUID for InstanceIp
-## VM//NovaServer Parameters
-  cgi_fw_image_name:
-    type: string
-    description: image_name for the ServiceInstance VM
-  cgi_fw_flavor_name:
-    type: string
-    description: flavor for the ServiceInstance VM
-  availability_zone_0:
-    type: string
-    description: availability_zone for the ServiceInstance
-  availability_zone_1:
-    type: string
-    description: availability_zone for the ServiceInstance
-  cgi_fw_names:
-    type: comma_delimited_list
-    label: Firewall VM Name
-    description: Comma Delimited List of Names for ServiceInstance VMs
-  cgi_fw_oam_protected_ips:
-    type: comma_delimited_list
-    description: the ips of the management network for CGI FW
-  contrail_vmi_subinterface:
-    type: string
-  port_name:
-    type: string
-  subinterface_name_prefix:
-    type: string
-#####################
-resources:
-#####################
-
-## RSG//Resource:SecurityGroup
-  CGI_FW_RSG_SI_1:
-    type: OS::Neutron::SecurityGroup
-    properties:
-      description: Security Group of CGI FW ServiceInstance
-      name:
-        str_replace:
-          template: VNF_NAME_sg_cgi_fw
-          params:
-            VNF_NAME: { get_param: vnf_name }
-      rules:
-        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "udp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "132", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "icmp", "ethertype": "IPv4"}
-        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "tcp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "udp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "132", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "58", "ethertype": "IPv6"}
-        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "udp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "132", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "icmp", "ethertype": "IPv4"}
-        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "tcp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "udp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "132", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
-        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "58", "ethertype": "IPv6"}
-
-## RAG//Resource:Anti-Affinity Group
-  CGI_FW_RAG:
-    type: OS::Nova::ServerGroup
-    properties:
-      name:
-        str_replace:
-          template: VNF_NAME_srg_cgi_fw
-          params:
-            VNF_NAME: { get_param: vnf_name }
-      policies:
-        - anti-affinity
-
-## RST//Resource:ServiceTemplate
-  CGI_FW_RST_1:
-    type: OS::ContrailV2::ServiceTemplate
-    properties:
-      domain: { get_param: domain }
-      name:
-        str_replace:
-          template: VNF_NAME_st_cgi_fw
-          params:
-            VNF_NAME: { get_param: vnf_name }
-      service_template_properties:
-        service_template_properties_version: { get_param: cgi_fw_st_version }
-        service_template_properties_service_mode: { get_param: cgi_fw_st_mode }
-        service_template_properties_service_type: { get_param: cgi_fw_st_type }
-        service_template_properties_service_virtualization_type: { get_param: cgi_fw_st_virtualization_type }
-        service_template_properties_interface_type:
-          - service_template_properties_interface_type_service_interface_type: { get_param: sgi_protected_interface_type }
-          - service_template_properties_interface_type_service_interface_type: { get_param: sgi_direct_interface_type }
-
-## RVMI//Resource:VirtualMachineInterface
-#### CGI_FW VirtualMachineInterface for 1st Interface // MGMT // oam_protected_NET_1
-  CGI_FW_OAM_PROTECTED_RVMI_1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_1
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
-      virtual_machine_interface_properties:
-        virtual_machine_interface_properties_service_interface_type: { get_param: oam_protected_interface_type }
-      virtual_network_refs:
-        - get_param: oam_protected_net_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-  CGI_FW_OAM_PROTECTED_RVMI_2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_1
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
-      virtual_machine_interface_properties:
-        virtual_machine_interface_properties_service_interface_type: { get_param: oam_protected_interface_type }
-      virtual_network_refs:
-        - get_param: oam_protected_net_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-
-#### CGI_FW VirtualMachineInterface for 2nd Interface // LEFT // PROTECTED_NET_1 (ServiceChain)
-  CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_dummy
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
-      virtual_network_refs:
-        - get_param: sgi_protected_net_dummy_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-
-  CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_dummy
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
-      virtual_network_refs:
-        - get_param: sgi_protected_net_dummy_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-
-#### CGI_FW VirtualMachineInterface for 3rd Interface // RIGHT // DIRECT_NET_1 (ServiceChain)
-  CGI_FW_SGI_DIRECT_RVMI_1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_3
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
-      ecmp_hashing_include_fields:
-        ecmp_hashing_include_fields_hashing_configured:
-          get_param: cgi_fw_vmi_ecmp_configured
-        ecmp_hashing_include_fields_source_ip:
-          get_param: cgi_fw_vmi_ecmp_src_ip
-        ecmp_hashing_include_fields_destination_ip:
-          get_param: cgi_fw_vmi_ecmp_dst_ip
-        ecmp_hashing_include_fields_ip_protocol:
-          get_param: cgi_fw_vmi_ecmp_ip_protocol
-        ecmp_hashing_include_fields_source_port:
-          get_param: cgi_fw_vmi_ecmp_src_port
-        ecmp_hashing_include_fields_destination_port:
-          get_param: cgi_fw_vmi_ecmp_dst_port
-      virtual_machine_interface_properties:
-        virtual_machine_interface_properties_service_interface_type: { get_param: sgi_direct_interface_type }
-      port_tuple_refs: { get_param: cgi_fw_pt_vlan_VM1_name_fqdn }   
-      virtual_network_refs:
-        - get_param: sgi_direct_net_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-  CGI_FW_SGI_DIRECT_RVMI_2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_3
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
-      ecmp_hashing_include_fields:
-        ecmp_hashing_include_fields_hashing_configured:
-          get_param: cgi_fw_vmi_ecmp_configured
-        ecmp_hashing_include_fields_source_ip:
-          get_param: cgi_fw_vmi_ecmp_src_ip
-        ecmp_hashing_include_fields_destination_ip:
-          get_param: cgi_fw_vmi_ecmp_dst_ip
-        ecmp_hashing_include_fields_ip_protocol:
-          get_param: cgi_fw_vmi_ecmp_ip_protocol
-        ecmp_hashing_include_fields_source_port:
-          get_param: cgi_fw_vmi_ecmp_src_port
-        ecmp_hashing_include_fields_destination_port:
-          get_param: cgi_fw_vmi_ecmp_dst_port
-      virtual_machine_interface_properties:
-        virtual_machine_interface_properties_service_interface_type: { get_param: sgi_direct_interface_type }
-      port_tuple_refs: { get_param: cgi_fw_pt_vlan_VM2_name_fqdn }   
-      virtual_network_refs:
-        - get_param: sgi_direct_net_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-
-#### CGI_FW VirtualMachineInterface for 4th Interface // OTHER // HSL_NET_1
-  CGI_FW_NIMBUS_HSL_RVMI_1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_4
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
-      virtual_machine_interface_properties:
-        virtual_machine_interface_properties_service_interface_type: { get_param: nimbus_hsl_interface_type }
-      virtual_network_refs:
-        - get_param: nimbus_hsl_net_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-  CGI_FW_NIMBUS_HSL_RVMI_2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: VM_NAME_vmi_4
-          params:
-            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
-      virtual_machine_interface_properties:
-        virtual_machine_interface_properties_service_interface_type: { get_param: nimbus_hsl_interface_type }
-      virtual_network_refs:
-        - get_param: nimbus_hsl_net_fqdn
-      security_group_refs:
-        - get_resource: CGI_FW_RSG_SI_1
-
-## RII//Resource:InstanceIp
-#### CGI_FW InstanceIp for 1st Interface // MGMT // oam_protected_NET_1
-  CGI_FW_OAM_PROTECTED_RII_1:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_OAM_PROTECTED_RVMI_1
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_OAM_PROTECTED_RVMI_1
-      virtual_network_refs:
-        - get_param: oam_protected_net_fqdn
-      instance_ip_address: { get_param: [cgi_fw_oam_protected_ips,0 ] }
-  CGI_FW_OAM_PROTECTED_RII_2:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_OAM_PROTECTED_RVMI_2
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_OAM_PROTECTED_RVMI_2
-      virtual_network_refs:
-        - get_param: oam_protected_net_fqdn
-      instance_ip_address: { get_param: [cgi_fw_oam_protected_ips,1 ] }
-
-#### CGI_FW InstanceIp for 2nd Interface // DUMMY // PROTECTED_NET_1
-  CGI_FW_SGI_PROTECTED_RII_DUMMY_1:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1
-      virtual_network_refs:
-        - get_param: sgi_protected_net_dummy_fqdn
-  CGI_FW_SGI_PROTECTED_RII_DUMMY_2:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2
-      virtual_network_refs:
-        - get_param: sgi_protected_net_dummy_fqdn
-
-#### CGI_FW InstanceIp for 3rd Interface // RIGHT // DIRECT_NET_1
-  CGI_FW_SGI_DIRECT_RII_1:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_SGI_DIRECT_RVMI_1
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_SGI_DIRECT_RVMI_1
-      virtual_network_refs:
-        - get_param: sgi_direct_net_fqdn
-      subnet_uuid: { get_param: sgi_direct_subnet_id }
-  CGI_FW_SGI_DIRECT_RII_2:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_SGI_DIRECT_RVMI_2
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_SGI_DIRECT_RVMI_2
-      virtual_network_refs:
-        - get_param: sgi_direct_net_fqdn
-      subnet_uuid: { get_param: sgi_direct_subnet_id }
-
-#### CGI_FW InstanceIp for 3rd Interface v6 // RIGHT // DIRECT_NET_1
-  CGI_FW_SGI_DIRECT_V6_RII_1:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_SGI_DIRECT_RVMI_2
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_SGI_DIRECT_RVMI_1
-      virtual_network_refs:
-        - get_param: sgi_direct_net_fqdn
-      subnet_uuid: { get_param: sgi_direct_ipv6_subnet_id }
-      instance_ip_family: { get_param: sgi_direct_family_v6 }
-  CGI_FW_SGI_DIRECT_V6_RII_2:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_SGI_DIRECT_RVMI_2
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_SGI_DIRECT_RVMI_2
-      virtual_network_refs:
-        - get_param: sgi_direct_net_fqdn
-      subnet_uuid: { get_param: sgi_direct_ipv6_subnet_id }
-      instance_ip_family: { get_param: sgi_direct_family_v6 }
-
-#### CGI_FW InstanceIp for 4th Interface // OTHER // HSL_NET_1
-  CGI_FW_NIMBUS_HSL_RII_1:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_NIMBUS_HSL_RVMI_1
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_NIMBUS_HSL_RVMI_1
-      virtual_network_refs:
-        - get_param: nimbus_hsl_net_fqdn
-  CGI_FW_NIMBUS_HSL_RII_2:
-    type: OS::ContrailV2::InstanceIp
-    depends_on:
-      - CGI_FW_NIMBUS_HSL_RVMI_2
-    properties:
-      virtual_machine_interface_refs:
-        - get_resource: CGI_FW_NIMBUS_HSL_RVMI_2
-      virtual_network_refs:
-        - get_param: nimbus_hsl_net_fqdn
-
-## RNS//Resource:NovaServer
-#### CGI_FW ServiceInstance OS::Nova::Server VM 1
-  CGI_FW_SERVER_1:
-    type: OS::Nova::Server
-    depends_on:
-      - CGI_FW_OAM_PROTECTED_RII_1
-      - CGI_FW_SGI_PROTECTED_RII_DUMMY_1
-      - CGI_FW_SGI_DIRECT_RII_1
-      - CGI_FW_SGI_DIRECT_V6_RII_1
-      - CGI_FW_NIMBUS_HSL_RII_1
-    properties:
-      name: { get_param: [ cgi_fw_names,0 ] }
-      image: { get_param:  cgi_fw_image_name }
-      flavor: { get_param: cgi_fw_flavor_name }
-      availability_zone: { get_param: availability_zone_0 }
-      scheduler_hints: { group: {get_resource: CGI_FW_RAG } }
-      networks:
-        - port: { get_resource: CGI_FW_OAM_PROTECTED_RVMI_1 }
-        - port: { get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1 }
-        - port: { get_resource: CGI_FW_SGI_DIRECT_RVMI_1 }
-        - port: { get_resource: CGI_FW_NIMBUS_HSL_RVMI_1 }
-      metadata:
-        vf_module_name:  { get_param: vf_module_name }
-        vnf_name: { get_param: vnf_name }
-        vnf_id: { get_param: vnf_id }
-        vf_module_id:  { get_param: vf_module_id }
-  CGI_FW_SERVER_2:
-    type: OS::Nova::Server
-    depends_on:
-      - CGI_FW_OAM_PROTECTED_RII_2
-      - CGI_FW_SGI_PROTECTED_RII_DUMMY_2
-      - CGI_FW_SGI_DIRECT_RII_2
-      - CGI_FW_SGI_DIRECT_V6_RII_2
-      - CGI_FW_NIMBUS_HSL_RII_2
-    properties:
-      name: { get_param: [ cgi_fw_names,1 ] }
-      image: { get_param:  cgi_fw_image_name }
-      flavor: { get_param: cgi_fw_flavor_name }
-      availability_zone: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0], 0, "OS-EXT-IPS-MAC:mac_addr"] }
-      scheduler_hints: { group: {get_resource: CGI_FW_RAG } }
-      networks:
-        - port: { get_resource: CGI_FW_OAM_PROTECTED_RVMI_2 }
-        - port: { get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2 }
-        - port: { get_resource: CGI_FW_SGI_DIRECT_RVMI_2 }
-        - port: { get_resource: CGI_FW_NIMBUS_HSL_RVMI_2 }
-      metadata:
-        vf_module_name:  { get_param: vf_module_name }
-        vnf_name: { get_param: vnf_name }
-        vnf_id: { get_param: vnf_id }
-        vf_module_id:  { get_param: vf_module_id }
-
-  contrail_vmi_subinterface:
-      type: OS::ContrailV2::VirtualMachineInterface
-      properties:
-        name:
-          str_replace:
-            template: VM_NAME_PORT_3
-            params:
-              VM_NAME: { get_param: vipr_atm_name_0 }
-        virtual_machine_interface_properties:
-          {
-          virtual_machine_interface_properties_service_interface_type: 'left'
-          }
-        port_tuple_refs: [{ get_param: port_name }]
-        virtual_network_refs: [{ get_param: oam_protected_net_fqdn }]
-
-outputs:
-  cgi_fw_left_vmi_id_1:
-    description:  uuid of the right dummy interface
-    value: {get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1 }
-
-  cgi_fw_01_left_mac_1:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_1, addresses, get_param: sgi_protected_net_dummy, 0, "OS-EXT-IPS-MAC:mac_addr"] }
-  cgi_fw_left_vmi_id_2:
-    description:  uuid of the right dummy interface
-    value: {get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2 }
-
-  cgi_fw_01_left_mac_2:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: sgi_protected_net_dummy, 0, "OS-EXT-IPS-MAC:mac_addr"] }
-
-  cgi_fw_st_name_fqdn:
-    description:  FQDN of the FW_CGI ServiceTemplate
-    value: {list_join: [':', { get_attr: [ CGI_FW_RST_1, fq_name ] } ] }
-
-  cgi_fw_sec_grp_id:
-    description:  uuid of the security group
-    value: {get_resource: CGI_FW_RSG_SI_1 }
-
-  cgi_fw_01_left_mac_3:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0], 0, "OS-EXT-IPS-MAC:mac_addr"] }
-
-  cgi_fw_01_left_mac_4:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0, get_param: [sgi_protected_net_dummy1,1] ], 0, "OS-EXT-IPS-MAC:mac_addr"] }
-
-  cgi_fw_01_left_mac_5:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0], 0, "OS-EXT-IPS-MAC:mac_addr"], 0,
-    "OS-EXT-IPS-MAC:mac_addr"] }
-
-  cgi_fw_01_left_mac_6:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_2, addresses,str_split: [',', 'string,to,split'], 0, "OS-EXT-IPS-MAC:mac_addr"] }
-
-  cgi_fw_01_left_mac_7:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [contrail_vmi_subinterface, virtual_machine_interface_properties ] }
-
-  cgi_fw_01_left_mac_8:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [contrail_vmi_subinterface, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair ] }
-
-  cgi_fw_01_left_mac_9:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_2, addresses,str_split: [',', get_param: sgi_protected_net_dummy ], 0, "OS-EXT-IPS-MAC:mac_addr"] }
-
-  cgi_fw_01_left_mac_10:
-    description:  cgi fw01 left interface Mac-Address
-    value: { get_attr: [CGI_FW_SERVER_2, addresses,str_split: [',', get_attr: [contrail_vmi_subinterface,
-                                                                              virtual_machine_interface_allowed_address_pairs,
-                                                                              virtual_machine_interface_allowed_address_pairs_allowed_address_pair ]], 0, "OS-EXT-IPS-MAC:mac_addr"] }
-  VMA-EXT_IPS:
-    description: IP addresses assigned to the first external network.
-    value: { get_attr: [CGI_FW_SERVER_2, {get_param: [vnf_id, {get_param: sgi_protected_interface_type}]}, ASSIGNED_IPS]}
-
-  VMA-DynamicResource:
-    description: IP addresses assigned to the first external network.
-    value: { get_attr: [{get_param: vnf_id}, {get_param: [vnf_id, {get_param:  sgi_protected_interface_type}]},  ASSIGNED_IPS]}
+heat_template_version: 2015-04-30\r
+#FIRSTNET - FW -FGI// Contrail 3.0 Version 2 Template\r
+#AUTHORS: Rajesh Anne (ja702x)\r
+description: >\r
+  HOT template to create SecurityGroup//ServerGroup//ServiceTemplate:\r
+\r
+#####################\r
+parameters:\r
+#####################\r
+\r
+## GLOBAL//Basic Parameters\r
+## OPENECOMP VNF//VM Parameters\r
+  vnf_name:\r
+    type: string\r
+    description: Unique name for this VF instance\r
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC\r
+\r
+  domain:\r
+    type: string\r
+    description: domain for the ServiceTemplate\r
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC\r
+  vnf_id:\r
+    type: string\r
+    description: Unique ID for this VF instance\r
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC\r
+  vf_module_id:\r
+    type: string\r
+    description: Unique ID for this VF Module instance\r
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC\r
+  vf_module_name:\r
+    type: string\r
+    description: Unique name for this VF Module instance\r
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC \r
+## GLOBAL//Network Parameters\r
+  sgi_protected_interface_type:\r
+    type: string\r
+    description: service_interface_type for ServiceInstance\r
+  sgi_direct_interface_type:\r
+    type: string\r
+    description: service_interface_type for ServiceInstance\r
+  oam_protected_net_fqdn:\r
+    type: string\r
+    description: fq_name for the VirtualNetwork\r
+  sgi_protected_net_dummy:\r
+    type: string\r
+    description: name for the VirtualNetwork\r
+  sgi_protected_net_dummy1:\r
+    type: string\r
+    description: name for the VirtualNetwork\r
+  sgi_protected_net_dummy_fqdn:\r
+    type: string\r
+    description: fq_name for the VirtualNetwork\r
+  sgi_direct_net_fqdn:\r
+    type: string\r
+    description: fq_name for the VirtualNetwork\r
+  nimbus_hsl_net_fqdn:\r
+    type: string\r
+    description: fq_name for the VirtualNetwork\r
+  oam_protected_interface_type:\r
+    type: string\r
+    description: service_interface_type for ServiceInstance\r
+\r
+  nimbus_hsl_interface_type:\r
+    type: string\r
+    description: service_interface_type for ServiceInstance\r
+## PT//PortTuple Parameters\r
+  cgi_fw_pt_vlan_VM1_name_fqdn:\r
+    type: json\r
+    description: fqdn of the ServiceInstance in PortTuple Resource\r
+  cgi_fw_pt_vlan_VM2_name_fqdn:\r
+    type: json\r
+    description: fqdn of the ServiceInstance in PortTuple Resource\r
+## ST//ServiceTemplate Parameters\r
+  cgi_fw_st_version:\r
+    type: number\r
+    description: version for the ServiceTemplate\r
+    constraints:\r
+      - range: { min: 0, max: 99 }\r
+        description: Must be a number between 0 and 99\r
+  cgi_fw_st_mode:\r
+    type: string\r
+    description: service_mode for the ServiceTemplate\r
+  cgi_fw_st_type:\r
+    type: string\r
+    description: service_type for the ServiceTemplate\r
+  cgi_fw_st_virtualization_type:\r
+    type: string\r
+    description: service_virtualization_type for the ServiceTemplate\r
+## VMI//VirtualMachineInterface ECMP Parameters\r
+  cgi_fw_vmi_ecmp_configured:\r
+    type: boolean\r
+    description: hashing_configured for the VirtualMachineInterface\r
+  cgi_fw_vmi_ecmp_src_ip:\r
+    type: boolean\r
+    description: source_ip for the VirtualMachineInterface\r
+  cgi_fw_vmi_ecmp_dst_ip:\r
+    type: boolean\r
+    description: destination_ip for the VirtualMachineInterface\r
+  cgi_fw_vmi_ecmp_ip_protocol:\r
+    type: boolean\r
+    description: ip_protocol for the VirtualMachineInterface\r
+  cgi_fw_vmi_ecmp_src_port:\r
+    type: boolean\r
+    description: source_port for the VirtualMachineInterface\r
+  cgi_fw_vmi_ecmp_dst_port:\r
+    type: boolean\r
+    description: destination_port for the VirtualMachineInterface\r
+## II//InstanceIp\r
+  sgi_direct_family_v6:\r
+    type: string\r
+    description: IP Family Address for InstanceIp\r
+  sgi_direct_subnet_id:\r
+    type: string\r
+    description: Subnet UUID for InstanceIp\r
+  sgi_direct_ipv6_subnet_id:\r
+    type: string\r
+    description: Subnet UUID for InstanceIp\r
+## VM//NovaServer Parameters\r
+  cgi_fw_image_name:\r
+    type: string\r
+    description: image_name for the ServiceInstance VM\r
+  cgi_fw_flavor_name:\r
+    type: string\r
+    description: flavor for the ServiceInstance VM\r
+  availability_zone_0:\r
+    type: string\r
+    description: availability_zone for the ServiceInstance\r
+  availability_zone_1:\r
+    type: string\r
+    description: availability_zone for the ServiceInstance\r
+  cgi_fw_names:\r
+    type: comma_delimited_list\r
+    label: Firewall VM Name\r
+    description: Comma Delimited List of Names for ServiceInstance VMs\r
+  cgi_fw_oam_protected_ips:\r
+    type: comma_delimited_list\r
+    description: the ips of the management network for CGI FW\r
+  contrail_vmi_subinterface:\r
+    type: string\r
+  port_name:\r
+    type: string\r
+  subinterface_name_prefix:\r
+    type: string\r
+#####################\r
+resources:\r
+#####################\r
+  template_VMInt_INT1_VLC:\r
+    type: OS::Heat::ResourceGroup\r
+    properties:\r
+      count: 3\r
+      resource_def:\r
+        type: firstnet_fgi_frwl.yml\r
+        properties:\r
+          virtual_machine_interface_properties:\r
+            {\r
+              virtual_machine_interface_properties_service_interface_type: { get_param: contrail_vmi_subinterface },\r
+            }\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/inputfiles/firstnet_fgi_frwl.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParam/inputfiles/firstnet_fgi_frwl.yml
new file mode 100644 (file)
index 0000000..59a8f0a
--- /dev/null
@@ -0,0 +1,592 @@
+heat_template_version: 2015-04-30
+#FIRSTNET - FW -FGI// Contrail 3.0 Version 2 Template
+#AUTHORS: Rajesh Anne (ja702x)
+description: >
+  HOT template to create SecurityGroup//ServerGroup//ServiceTemplate:
+
+#####################
+parameters:
+#####################
+
+## GLOBAL//Basic Parameters
+## OPENECOMP VNF//VM Parameters
+  vnf_name:
+    type: string
+    description: Unique name for this VF instance
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
+
+  domain:
+    type: string
+    description: domain for the ServiceTemplate
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
+  vnf_id:
+    type: string
+    description: Unique ID for this VF instance
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
+  vf_module_id:
+    type: string
+    description: Unique ID for this VF Module instance
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
+  vf_module_name:
+    type: string
+    description: Unique name for this VF Module instance
+#   For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC 
+## GLOBAL//Network Parameters
+  sgi_protected_interface_type:
+    type: string
+    description: service_interface_type for ServiceInstance
+  sgi_direct_interface_type:
+    type: string
+    description: service_interface_type for ServiceInstance
+  oam_protected_net_fqdn:
+    type: string
+    description: fq_name for the VirtualNetwork
+  sgi_protected_net_dummy:
+    type: string
+    description: name for the VirtualNetwork
+  sgi_protected_net_dummy1:
+    type: string
+    description: name for the VirtualNetwork
+  sgi_protected_net_dummy_fqdn:
+    type: string
+    description: fq_name for the VirtualNetwork
+  sgi_direct_net_fqdn:
+    type: string
+    description: fq_name for the VirtualNetwork
+  nimbus_hsl_net_fqdn:
+    type: string
+    description: fq_name for the VirtualNetwork
+  oam_protected_interface_type:
+    type: string
+    description: service_interface_type for ServiceInstance
+
+  nimbus_hsl_interface_type:
+    type: string
+    description: service_interface_type for ServiceInstance
+## PT//PortTuple Parameters
+  cgi_fw_pt_vlan_VM1_name_fqdn:
+    type: json
+    description: fqdn of the ServiceInstance in PortTuple Resource
+  cgi_fw_pt_vlan_VM2_name_fqdn:
+    type: json
+    description: fqdn of the ServiceInstance in PortTuple Resource
+## ST//ServiceTemplate Parameters
+  cgi_fw_st_version:
+    type: number
+    description: version for the ServiceTemplate
+    constraints:
+      - range: { min: 0, max: 99 }
+        description: Must be a number between 0 and 99
+  cgi_fw_st_mode:
+    type: string
+    description: service_mode for the ServiceTemplate
+  cgi_fw_st_type:
+    type: string
+    description: service_type for the ServiceTemplate
+  cgi_fw_st_virtualization_type:
+    type: string
+    description: service_virtualization_type for the ServiceTemplate
+## VMI//VirtualMachineInterface ECMP Parameters
+  cgi_fw_vmi_ecmp_configured:
+    type: boolean
+    description: hashing_configured for the VirtualMachineInterface
+  cgi_fw_vmi_ecmp_src_ip:
+    type: boolean
+    description: source_ip for the VirtualMachineInterface
+  cgi_fw_vmi_ecmp_dst_ip:
+    type: boolean
+    description: destination_ip for the VirtualMachineInterface
+  cgi_fw_vmi_ecmp_ip_protocol:
+    type: boolean
+    description: ip_protocol for the VirtualMachineInterface
+  cgi_fw_vmi_ecmp_src_port:
+    type: boolean
+    description: source_port for the VirtualMachineInterface
+  cgi_fw_vmi_ecmp_dst_port:
+    type: boolean
+    description: destination_port for the VirtualMachineInterface
+## II//InstanceIp
+  sgi_direct_family_v6:
+    type: string
+    description: IP Family Address for InstanceIp
+  sgi_direct_subnet_id:
+    type: string
+    description: Subnet UUID for InstanceIp
+  sgi_direct_ipv6_subnet_id:
+    type: string
+    description: Subnet UUID for InstanceIp
+## VM//NovaServer Parameters
+  cgi_fw_image_name:
+    type: string
+    description: image_name for the ServiceInstance VM
+  cgi_fw_flavor_name:
+    type: string
+    description: flavor for the ServiceInstance VM
+  availability_zone_0:
+    type: string
+    description: availability_zone for the ServiceInstance
+  availability_zone_1:
+    type: string
+    description: availability_zone for the ServiceInstance
+  cgi_fw_names:
+    type: comma_delimited_list
+    label: Firewall VM Name
+    description: Comma Delimited List of Names for ServiceInstance VMs
+  cgi_fw_oam_protected_ips:
+    type: comma_delimited_list
+    description: the ips of the management network for CGI FW
+  contrail_vmi_subinterface:
+    type: string
+  port_name:
+    type: string
+  subinterface_name_prefix:
+    type: string
+#####################
+resources:
+#####################
+
+## RSG//Resource:SecurityGroup
+  CGI_FW_RSG_SI_1:
+    type: OS::Neutron::SecurityGroup
+    properties:
+      description: Security Group of CGI FW ServiceInstance
+      name:
+        str_replace:
+          template: VNF_NAME_sg_cgi_fw
+          params:
+            VNF_NAME: { get_param: vnf_name }
+      rules:
+        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "udp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "132", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "icmp", "ethertype": "IPv4"}
+        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "tcp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "udp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "132", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "58", "ethertype": "IPv6"}
+        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "udp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "132", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "icmp", "ethertype": "IPv4"}
+        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "tcp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "udp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "132", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+        - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "58", "ethertype": "IPv6"}
+
+## RAG//Resource:Anti-Affinity Group
+  CGI_FW_RAG:
+    type: OS::Nova::ServerGroup
+    properties:
+      name:
+        str_replace:
+          template: VNF_NAME_srg_cgi_fw
+          params:
+            VNF_NAME: { get_param: vnf_name }
+      policies:
+        - anti-affinity
+
+## RST//Resource:ServiceTemplate
+  CGI_FW_RST_1:
+    type: OS::ContrailV2::ServiceTemplate
+    properties:
+      domain: { get_param: domain }
+      name:
+        str_replace:
+          template: VNF_NAME_st_cgi_fw
+          params:
+            VNF_NAME: { get_param: vnf_name }
+      service_template_properties:
+        service_template_properties_version: { get_param: cgi_fw_st_version }
+        service_template_properties_service_mode: { get_param: cgi_fw_st_mode }
+        service_template_properties_service_type: { get_param: cgi_fw_st_type }
+        service_template_properties_service_virtualization_type: { get_param: cgi_fw_st_virtualization_type }
+        service_template_properties_interface_type:
+          - service_template_properties_interface_type_service_interface_type: { get_param: sgi_protected_interface_type }
+          - service_template_properties_interface_type_service_interface_type: { get_param: sgi_direct_interface_type }
+
+## RVMI//Resource:VirtualMachineInterface
+#### CGI_FW VirtualMachineInterface for 1st Interface // MGMT // oam_protected_NET_1
+  CGI_FW_OAM_PROTECTED_RVMI_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_1
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_service_interface_type: { get_param: oam_protected_interface_type }
+      virtual_network_refs:
+        - get_param: oam_protected_net_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+  CGI_FW_OAM_PROTECTED_RVMI_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_1
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_service_interface_type: { get_param: oam_protected_interface_type }
+      virtual_network_refs:
+        - get_param: oam_protected_net_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+
+#### CGI_FW VirtualMachineInterface for 2nd Interface // LEFT // PROTECTED_NET_1 (ServiceChain)
+  CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_dummy
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
+      virtual_network_refs:
+        - get_param: sgi_protected_net_dummy_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+
+  CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_dummy
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
+      virtual_network_refs:
+        - get_param: sgi_protected_net_dummy_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+
+#### CGI_FW VirtualMachineInterface for 3rd Interface // RIGHT // DIRECT_NET_1 (ServiceChain)
+  CGI_FW_SGI_DIRECT_RVMI_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_3
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
+      ecmp_hashing_include_fields:
+        ecmp_hashing_include_fields_hashing_configured:
+          get_param: cgi_fw_vmi_ecmp_configured
+        ecmp_hashing_include_fields_source_ip:
+          get_param: cgi_fw_vmi_ecmp_src_ip
+        ecmp_hashing_include_fields_destination_ip:
+          get_param: cgi_fw_vmi_ecmp_dst_ip
+        ecmp_hashing_include_fields_ip_protocol:
+          get_param: cgi_fw_vmi_ecmp_ip_protocol
+        ecmp_hashing_include_fields_source_port:
+          get_param: cgi_fw_vmi_ecmp_src_port
+        ecmp_hashing_include_fields_destination_port:
+          get_param: cgi_fw_vmi_ecmp_dst_port
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_service_interface_type: { get_param: sgi_direct_interface_type }
+      port_tuple_refs: { get_param: cgi_fw_pt_vlan_VM1_name_fqdn }   
+      virtual_network_refs:
+        - get_param: sgi_direct_net_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+  CGI_FW_SGI_DIRECT_RVMI_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_3
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
+      ecmp_hashing_include_fields:
+        ecmp_hashing_include_fields_hashing_configured:
+          get_param: cgi_fw_vmi_ecmp_configured
+        ecmp_hashing_include_fields_source_ip:
+          get_param: cgi_fw_vmi_ecmp_src_ip
+        ecmp_hashing_include_fields_destination_ip:
+          get_param: cgi_fw_vmi_ecmp_dst_ip
+        ecmp_hashing_include_fields_ip_protocol:
+          get_param: cgi_fw_vmi_ecmp_ip_protocol
+        ecmp_hashing_include_fields_source_port:
+          get_param: cgi_fw_vmi_ecmp_src_port
+        ecmp_hashing_include_fields_destination_port:
+          get_param: cgi_fw_vmi_ecmp_dst_port
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_service_interface_type: { get_param: sgi_direct_interface_type }
+      port_tuple_refs: { get_param: cgi_fw_pt_vlan_VM2_name_fqdn }   
+      virtual_network_refs:
+        - get_param: sgi_direct_net_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+
+#### CGI_FW VirtualMachineInterface for 4th Interface // OTHER // HSL_NET_1
+  CGI_FW_NIMBUS_HSL_RVMI_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_4
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,0 ] }
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_service_interface_type: { get_param: nimbus_hsl_interface_type }
+      virtual_network_refs:
+        - get_param: nimbus_hsl_net_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+  CGI_FW_NIMBUS_HSL_RVMI_2:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: VM_NAME_vmi_4
+          params:
+            VM_NAME: { get_param: [ cgi_fw_names,1 ] }
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_service_interface_type: { get_param: nimbus_hsl_interface_type }
+      virtual_network_refs:
+        - get_param: nimbus_hsl_net_fqdn
+      security_group_refs:
+        - get_resource: CGI_FW_RSG_SI_1
+
+## RII//Resource:InstanceIp
+#### CGI_FW InstanceIp for 1st Interface // MGMT // oam_protected_NET_1
+  CGI_FW_OAM_PROTECTED_RII_1:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_OAM_PROTECTED_RVMI_1
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_OAM_PROTECTED_RVMI_1
+      virtual_network_refs:
+        - get_param: oam_protected_net_fqdn
+      instance_ip_address: { get_param: [cgi_fw_oam_protected_ips,0 ] }
+  CGI_FW_OAM_PROTECTED_RII_2:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_OAM_PROTECTED_RVMI_2
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_OAM_PROTECTED_RVMI_2
+      virtual_network_refs:
+        - get_param: oam_protected_net_fqdn
+      instance_ip_address: { get_param: [cgi_fw_oam_protected_ips,1 ] }
+
+#### CGI_FW InstanceIp for 2nd Interface // DUMMY // PROTECTED_NET_1
+  CGI_FW_SGI_PROTECTED_RII_DUMMY_1:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1
+      virtual_network_refs:
+        - get_param: sgi_protected_net_dummy_fqdn
+  CGI_FW_SGI_PROTECTED_RII_DUMMY_2:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2
+      virtual_network_refs:
+        - get_param: sgi_protected_net_dummy_fqdn
+
+#### CGI_FW InstanceIp for 3rd Interface // RIGHT // DIRECT_NET_1
+  CGI_FW_SGI_DIRECT_RII_1:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_SGI_DIRECT_RVMI_1
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_SGI_DIRECT_RVMI_1
+      virtual_network_refs:
+        - get_param: sgi_direct_net_fqdn
+      subnet_uuid: { get_param: sgi_direct_subnet_id }
+  CGI_FW_SGI_DIRECT_RII_2:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_SGI_DIRECT_RVMI_2
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_SGI_DIRECT_RVMI_2
+      virtual_network_refs:
+        - get_param: sgi_direct_net_fqdn
+      subnet_uuid: { get_param: sgi_direct_subnet_id }
+
+#### CGI_FW InstanceIp for 3rd Interface v6 // RIGHT // DIRECT_NET_1
+  CGI_FW_SGI_DIRECT_V6_RII_1:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_SGI_DIRECT_RVMI_2
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_SGI_DIRECT_RVMI_1
+      virtual_network_refs:
+        - get_param: sgi_direct_net_fqdn
+      subnet_uuid: { get_param: sgi_direct_ipv6_subnet_id }
+      instance_ip_family: { get_param: sgi_direct_family_v6 }
+  CGI_FW_SGI_DIRECT_V6_RII_2:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_SGI_DIRECT_RVMI_2
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_SGI_DIRECT_RVMI_2
+      virtual_network_refs:
+        - get_param: sgi_direct_net_fqdn
+      subnet_uuid: { get_param: sgi_direct_ipv6_subnet_id }
+      instance_ip_family: { get_param: sgi_direct_family_v6 }
+
+#### CGI_FW InstanceIp for 4th Interface // OTHER // HSL_NET_1
+  CGI_FW_NIMBUS_HSL_RII_1:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_NIMBUS_HSL_RVMI_1
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_NIMBUS_HSL_RVMI_1
+      virtual_network_refs:
+        - get_param: nimbus_hsl_net_fqdn
+  CGI_FW_NIMBUS_HSL_RII_2:
+    type: OS::ContrailV2::InstanceIp
+    depends_on:
+      - CGI_FW_NIMBUS_HSL_RVMI_2
+    properties:
+      virtual_machine_interface_refs:
+        - get_resource: CGI_FW_NIMBUS_HSL_RVMI_2
+      virtual_network_refs:
+        - get_param: nimbus_hsl_net_fqdn
+
+## RNS//Resource:NovaServer
+#### CGI_FW ServiceInstance OS::Nova::Server VM 1
+  CGI_FW_SERVER_1:
+    type: OS::Nova::Server
+    depends_on:
+      - CGI_FW_OAM_PROTECTED_RII_1
+      - CGI_FW_SGI_PROTECTED_RII_DUMMY_1
+      - CGI_FW_SGI_DIRECT_RII_1
+      - CGI_FW_SGI_DIRECT_V6_RII_1
+      - CGI_FW_NIMBUS_HSL_RII_1
+    properties:
+      name: { get_param: [ cgi_fw_names,0 ] }
+      image: { get_param:  cgi_fw_image_name }
+      flavor: { get_param: cgi_fw_flavor_name }
+      availability_zone: { get_param: availability_zone_0 }
+      scheduler_hints: { group: {get_resource: CGI_FW_RAG } }
+      networks:
+        - port: { get_resource: CGI_FW_OAM_PROTECTED_RVMI_1 }
+        - port: { get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1 }
+        - port: { get_resource: CGI_FW_SGI_DIRECT_RVMI_1 }
+        - port: { get_resource: CGI_FW_NIMBUS_HSL_RVMI_1 }
+      metadata:
+        vf_module_name:  { get_param: vf_module_name }
+        vnf_name: { get_param: vnf_name }
+        vnf_id: { get_param: vnf_id }
+        vf_module_id:  { get_param: vf_module_id }
+  CGI_FW_SERVER_2:
+    type: OS::Nova::Server
+    depends_on:
+      - CGI_FW_OAM_PROTECTED_RII_2
+      - CGI_FW_SGI_PROTECTED_RII_DUMMY_2
+      - CGI_FW_SGI_DIRECT_RII_2
+      - CGI_FW_SGI_DIRECT_V6_RII_2
+      - CGI_FW_NIMBUS_HSL_RII_2
+    properties:
+      name: { get_param: [ cgi_fw_names,1 ] }
+      image: { get_param:  cgi_fw_image_name }
+      flavor: { get_param: cgi_fw_flavor_name }
+      availability_zone: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+      scheduler_hints: { group: {get_resource: CGI_FW_RAG } }
+      networks:
+        - port: { get_resource: CGI_FW_OAM_PROTECTED_RVMI_2 }
+        - port: { get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2 }
+        - port: { get_resource: CGI_FW_SGI_DIRECT_RVMI_2 }
+        - port: { get_resource: CGI_FW_NIMBUS_HSL_RVMI_2 }
+      metadata:
+        vf_module_name:  { get_param: vf_module_name }
+        vnf_name: { get_param: vnf_name }
+        vnf_id: { get_param: vnf_id }
+        vf_module_id:  { get_param: vf_module_id }
+
+  contrail_vmi_subinterface:
+      type: OS::ContrailV2::VirtualMachineInterface
+      properties:
+        name:
+          str_replace:
+            template: VM_NAME_PORT_3
+            params:
+              VM_NAME: { get_param: vipr_atm_name_0 }
+        virtual_machine_interface_properties:
+          {
+          virtual_machine_interface_properties_service_interface_type: 'left'
+          }
+        port_tuple_refs: [{ get_param: port_name }]
+        virtual_network_refs: [{ get_param: oam_protected_net_fqdn }]
+
+outputs:
+  cgi_fw_left_vmi_id_1:
+    description:  uuid of the right dummy interface
+    value: {get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_1 }
+
+  cgi_fw_01_left_mac_1:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_1, addresses, get_param: sgi_protected_net_dummy, 0, "OS-EXT-IPS-MAC:mac_addr"] }
+  cgi_fw_left_vmi_id_2:
+    description:  uuid of the right dummy interface
+    value: {get_resource: CGI_FW_SGI_PROTECTED_RVMI_DUMMY_2 }
+
+  cgi_fw_01_left_mac_2:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: sgi_protected_net_dummy, 0, "OS-EXT-IPS-MAC:mac_addr"] }
+
+  cgi_fw_st_name_fqdn:
+    description:  FQDN of the FW_CGI ServiceTemplate
+    value: {list_join: [':', { get_attr: [ CGI_FW_RST_1, fq_name ] } ] }
+
+  cgi_fw_sec_grp_id:
+    description:  uuid of the security group
+    value: {get_resource: CGI_FW_RSG_SI_1 }
+
+  cgi_fw_01_left_mac_3:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+
+  cgi_fw_01_left_mac_4:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0, get_param: [sgi_protected_net_dummy1,1] ], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+
+  cgi_fw_01_left_mac_5:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_2, addresses, get_attr: [CGI_FW_SERVER_2, addresses, get_param: [sgi_protected_net_dummy, 0], 0, "OS-EXT-IPS-MAC:mac_addr"], 0,
+    "OS-EXT-IPS-MAC:mac_addr"] }
+
+  cgi_fw_01_left_mac_6:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_2, addresses,str_split: [',', 'string,to,split'], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+
+  cgi_fw_01_left_mac_7:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [contrail_vmi_subinterface, virtual_machine_interface_properties ] }
+
+  cgi_fw_01_left_mac_8:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [contrail_vmi_subinterface, virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair ] }
+
+  cgi_fw_01_left_mac_9:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_2, addresses,str_split: [',', get_param: sgi_protected_net_dummy ], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+
+  cgi_fw_01_left_mac_10:
+    description:  cgi fw01 left interface Mac-Address
+    value: { get_attr: [CGI_FW_SERVER_2, addresses,str_split: [',', get_attr: [contrail_vmi_subinterface,
+                                                                              virtual_machine_interface_allowed_address_pairs,
+                                                                              virtual_machine_interface_allowed_address_pairs_allowed_address_pair ]], 0, "OS-EXT-IPS-MAC:mac_addr"] }
+  VMA-EXT_IPS:
+    description: IP addresses assigned to the first external network.
+    value: { get_attr: [CGI_FW_SERVER_2, {get_param: [vnf_id, {get_param: sgi_protected_interface_type}]}, ASSIGNED_IPS]}
+
+  VMA-DynamicResource:
+    description: IP addresses assigned to the first external network.
+    value: { get_attr: [{get_param: vnf_id}, {get_param: [vnf_id, {get_param:  sgi_protected_interface_type}]},  ASSIGNED_IPS]}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4176447
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vdbe_subport_network:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_vmi_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_vmi_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_vmi_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_vmi_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d6f832f
--- /dev/null
@@ -0,0 +1,553 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_num_vn\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_node_1:\r
+      type: org.openecomp.resource.vfc.nodes.heat.vdbe\r
+      properties:\r
+        flavor:\r
+          get_input: vdbe_flavor_name\r
+        availability_zone:\r
+          get_input: availability_zone_1\r
+        image:\r
+          get_input: vdbe_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        name:\r
+          get_input: vdbe_name_1\r
+    vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        virtual_network_refs:\r
+        - get_input: untrusted_net_name\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: vdbe_aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: vdbe_aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vdbe_untrusted_vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vdbe_hw_untr_mac_1\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vdbe_untrusted_vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_node_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_untr_1_subports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_ip_prefix\r
+        attr_test:\r
+          get_attribute:\r
+          - vdbe_untr_1_port\r
+          - name\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        vdbe_subport_network: control_int_net\r
+        ip_v6_address:\r
+          get_input: vdbe_untrusted_v6_ip_1\r
+        counter:\r
+          get_input: vnf_id\r
+        ip_address:\r
+          get_input: vdbe_untrusted_ip_1\r
+        subinterfaces_name_prefix:\r
+          str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        aap_address_mode:\r
+          get_input: aap_address_mode\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        parent_interface: vdbe_untr_1_port\r
+        mac_address:\r
+          get_input: vdbe_hw_untr_mac_1\r
+        vlan_tag_list:\r
+          get_input: untrusted_vlan_tags\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        vmac_address:\r
+          get_input: vdbe_untrusted_vmac_address\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_ip_prefix_len\r
+      requirements:\r
+      - link_vdbe_untr_vmi_subport:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding_vdbe_untr_vmi_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: control_int_net\r
+          relationship: tosca.relationships.DependsOn\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+        network_ipam_refs:\r
+          get_attribute:\r
+          - vdbe_untr_1_subports\r
+          - count\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: vdbe_untr_1_subports\r
+          relationship: tosca.relationships.DependsOn\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - vdbe_node_1\r
+      - vdbe_untr_1_port\r
+      - vdbe_untr_1_subports\r
+      - control_int_net\r
+  outputs:\r
+    out1:\r
+      description: output_test\r
+      value:\r
+        get_attribute:\r
+        - vdbe_untr_1_subports\r
+        - name\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/expectedoutputfiles/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2eb726c
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vdbe_subport_network:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_vmi_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vdbe_subport_network\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_vmi_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - feature\r
+    requirements:\r
+      dependency_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - dependency\r
+      link_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - link\r
+      binding_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - binding\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/main.yml
new file mode 100644 (file)
index 0000000..45ff90d
--- /dev/null
@@ -0,0 +1,238 @@
+heat_template_version: 2013-05-23\r
+\r
+description: >\r
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+\r
+parameters:\r
+  aap_address_mode:\r
+    description: "Address mode for the vDBE cluster IP"\r
+    type: string\r
+  control_int_net_forwarding_mode:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: string\r
+  control_int_net_rpf:\r
+    description: "Reverse Path Filtering enable or disable for the control virtual network"\r
+    type: string\r
+  control_int_net_shared:\r
+    description: "control virtual network shared"\r
+    type: boolean\r
+  control_int_net_flood_unknown_unicast:\r
+    description: "forwarding mode of the control virtual network"\r
+    type: boolean\r
+  oam_net_name:\r
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"\r
+    type: string\r
+  untrusted_net_name:\r
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"\r
+    type: string\r
+  untrusted_num_vn:\r
+    constraints:\r
+      -\r
+        range:\r
+          max: 77\r
+          min: 1\r
+    description: "Number of vDBE subinterface virtual Networks"\r
+    type: number\r
+  untrusted_vlan_tags:\r
+    description: "List of subinterface vlan tags"\r
+    type: comma_delimited_list\r
+  untrusted_vn_networks:\r
+    description: "List of subinterface virtual networks"\r
+    type: comma_delimited_list\r
+  vdbe_aap_sec_untrusted_ip_prefix:\r
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_sec_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix:\r
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix:\r
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_aap_untrusted_v6_ip_prefix_len:\r
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_device_name:\r
+    description: "VDBE device Name for this vdbe VNF"\r
+    type: string\r
+  vdbe_hw_untr_mac_1:\r
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_name_1:\r
+    description: "VM Name for this vdbe node 1"\r
+    type: string\r
+  vdbe_untrusted_ip_1:\r
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_v6_ip_1:\r
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_untrusted_vmac_address:\r
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  vdbe_flavor_name:\r
+    description: "Flavor to use for vDBE"\r
+    type: string\r
+  vdbe_image_name:\r
+    description: "Image to use for vDBE"\r
+    type: string\r
+  vnf_id:\r
+    description: "Unique ID for this VF inst"\r
+    type: string\r
+  vnf_name:\r
+    description: "Unique name for this VF instance"\r
+    type: string\r
+  vf_module_id:\r
+    description: "Unique ID for this VF module inst"\r
+    type: string\r
+  availability_zone_1:\r
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."\r
+    type: string\r
+resources:\r
+  vdbe_node_1:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      availability_zone:\r
+        get_param: availability_zone_1\r
+      flavor:\r
+        get_param: vdbe_flavor_name\r
+      image:\r
+        get_param: vdbe_image_name\r
+      metadata:\r
+        vf_module_id:\r
+          get_param: vf_module_id\r
+        vnf_id:\r
+          get_param: vnf_id\r
+        vnf_name:\r
+          get_param: vnf_name\r
+      name:\r
+        get_param: vdbe_name_1\r
+      networks:\r
+        - port: {get_resource: vdbe_untr_1_port}\r
+  vdbe_untr_1_subports:\r
+    type: OS::Heat::ResourceGroup\r
+    depends_on: control_int_net\r
+    properties:\r
+      count:\r
+        get_param: untrusted_num_vn\r
+      resource_def:\r
+        type: nested.yml\r
+        properties:\r
+          attr_test: { get_attr: [ vdbe_untr_1_port, name ] }\r
+          aap_address_mode:\r
+            get_param: aap_address_mode\r
+          aap_sec_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+          aap_sec_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+          aap_untrusted_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_ip_prefix\r
+          aap_untrusted_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_ip_prefix_len\r
+          aap_untrusted_v6_ip_prefix:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+          aap_untrusted_v6_ip_prefix_len:\r
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+          counter:\r
+            get_param: vnf_id\r
+          ip_address:\r
+            get_param: vdbe_untrusted_ip_1\r
+          ip_v6_address:\r
+            get_param: vdbe_untrusted_v6_ip_1\r
+          mac_address:\r
+            get_param: vdbe_hw_untr_mac_1\r
+          parent_interface:\r
+            get_resource: vdbe_untr_1_port\r
+          subinterfaces_name_prefix:\r
+            str_replace:\r
+              params:\r
+                DBE:\r
+                  get_param: vdbe_device_name\r
+                VM_NAME:\r
+                  get_param: vdbe_name_1\r
+              template: VM_NAMEDBE001p1n004\r
+          vlan_tag_list:\r
+            get_param: untrusted_vlan_tags\r
+          vmac_address:\r
+            get_param: vdbe_untrusted_vmac_address\r
+          vdbe_subport_network:\r
+            get_resource: control_int_net\r
+  vdbe_untr_1_port:\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            DBE:\r
+              get_param: vdbe_device_name\r
+            VM_NAME:\r
+              get_param: vdbe_name_1\r
+          template: VM_NAMEDBE001p1n004\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_hw_untr_mac_1\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vdbe_untrusted_vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: vdbe_hw_untr_mac_1\r
+      virtual_network_refs:\r
+        -\r
+          get_param: untrusted_net_name\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+  control_int_net:\r
+    type: OS::ContrailV2::VirtualNetwork\r
+    depends_on: vdbe_untr_1_subports\r
+    properties:\r
+      network_ipam_refs: { get_attr: [ vdbe_untr_1_subports, count ] }\r
+      flood_unknown_unicast:\r
+        get_param: control_int_net_flood_unknown_unicast\r
+      is_shared:\r
+        get_param: control_int_net_shared\r
+      name:\r
+        str_replace:\r
+          params:\r
+            VNF_NAME:\r
+              get_param: vnf_name\r
+          template: VNF_NAME_control_net\r
+      virtual_network_properties:\r
+        virtual_network_properties_forwarding_mode:\r
+          get_param: control_int_net_forwarding_mode\r
+        virtual_network_properties_rpf:\r
+          get_param: control_int_net_rpf\r
+outputs:\r
+  out1:\r
+      description: output_test\r
+      value: {get_attr: [vdbe_untr_1_subports, name]}\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/inoutattr/inputfiles/nested.yml
new file mode 100644 (file)
index 0000000..eeaf3b6
--- /dev/null
@@ -0,0 +1,114 @@
+heat_template_version: 2013-05-23\r
+\r
+description: cmaui server template for vMMSC\r
+\r
+parameters:\r
+  aap_address_mode:\r
+    description: "Address mode for the vDBE cluster IP"\r
+    type: string\r
+  aap_sec_untrusted_ip_prefix:\r
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  aap_sec_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"\r
+    type: string\r
+  aap_untrusted_ip_prefix:\r
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  aap_untrusted_ip_prefix_len:\r
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  aap_untrusted_v6_ip_prefix:\r
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  aap_untrusted_v6_ip_prefix_len:\r
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"\r
+    type: string\r
+  counter:\r
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."\r
+    type: number\r
+  mac_address:\r
+    description: "HW MAC address to use for subinterface"\r
+    type: string\r
+  parent_interface:\r
+    description: "Parent Contrail interface"\r
+    type: string\r
+  subinterfaces_name_prefix:\r
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"\r
+    type: string\r
+  vlan_tag_list:\r
+    description: "List of VLAN IDs to use for subinterfaces"\r
+    type: comma_delimited_list\r
+  vmac_address:\r
+    description: "virtual MAC address to use for subinterface"\r
+    type: string\r
+  vdbe_subport_network:\r
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"\r
+    type: string\r
+  ip_address:\r
+    description: "IPv4 address associated with subinterfaces"\r
+    type: string\r
+  ip_v6_address:\r
+    description: "IPv6 address associated with subinterfaces"\r
+    type: string\r
+resources:\r
+  vdbe_untr_vmi_subport:\r
+    type: OS::ContrailV2::VirtualMachineInterface\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          params:\r
+            $INDEX:\r
+              get_param:\r
+                - vlan_tag_list\r
+                -\r
+                  get_param: counter\r
+            $NAME:\r
+              get_param: subinterfaces_name_prefix\r
+          template: $NAME_$INDEX\r
+      virtual_machine_interface_allowed_address_pairs:\r
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: aap_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: aap_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vmac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: aap_sec_untrusted_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: aap_sec_untrusted_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: mac_address\r
+          -\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:\r
+              get_param: aap_address_mode\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:\r
+                get_param: aap_untrusted_v6_ip_prefix\r
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:\r
+                get_param: aap_untrusted_v6_ip_prefix_len\r
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:\r
+              get_param: vmac_address\r
+      virtual_machine_interface_mac_addresses:\r
+        virtual_machine_interface_mac_addresses_mac_address:\r
+          -\r
+            get_param: mac_address\r
+      virtual_machine_interface_properties:\r
+        virtual_machine_interface_properties_sub_interface_vlan_tag:\r
+          get_param:\r
+            - vlan_tag_list\r
+            -\r
+              get_param: counter\r
+      virtual_machine_interface_refs:\r
+          [{get_param: parent_interface}]\r
+      virtual_network_refs:\r
+          [{get_param: vdbe_subport_network}]\r
\ No newline at end of file
index a9d7c6b..b99f0a0 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.cmaui:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    cmaui_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_names
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    template_PortTuple_LB1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: template_PortTuple_LB1
-      type: string
-    oam_sec_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: oam_sec_group_name
-      type: string
-    lb_st_interface_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: lb_st_interface_type_oam
-      type: string
-    virtual_ip_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: virtual_ip_address
-      type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: security_group_name
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-      description: network name of jsa log network
-    vlan_ids:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: vlan_ids
-      type: string
-    cmaui_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_image
-      type: string
-      description: Image for CMAUI server
-    virtual_ipv6_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: virtual_ipv6_address
-      type: string
-    cmaui_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_flavor
-      type: string
-      description: Flavor for CMAUI server
-    lb_st_vlan_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: lb_st_vlan_type_oam
-      type: string
-      description: dummy
-    mac_address:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: mac_address
-      type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: availability_zone_0
-      type: string
-      description: availabilityzone name
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_oam_ips
-      type: string
-  node_templates:
-    cmaui_port_2:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        replacement_policy: AUTO
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-        - get_input: security_group_name
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        network: test_net1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: server_cmaui_nova
-          relationship: tosca.relationships.network.BindsTo
-    test_nested_invalidConnection:
-      type: org.openecomp.resource.abstract.nodes.heat.nested
-      directives:
-      - substitutable
-      properties:
-        p1: test_Vlan1
-        service_template_filter:
-          substitute_service_template: nestedServiceTemplate.yaml
-        p2: server_cmaui_nova
-    test_net2:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        shared: true
-        network_name:
-          get_input: jsa_net_name
-    template_VMInt_OAM_lb_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - test_net1
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: server_cmaui_nova
-          relationship: tosca.relationships.network.BindsTo
-    test_resourceGroup:
-      type: org.openecomp.resource.abstract.nodes.heat.nested
-      directives:
-      - substitutable
-      properties:
-        p1: template_VMInt_OAM_lb_1
-        service_template_filter:
-          substitute_service_template: nestedServiceTemplate.yaml
-          count: 9
-          mandatory: true
-        p2: cmaui_port_2
-        net2: test_net2
-        net1: test_net1
-      requirements:
-      - link_template_Vlan_2:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net2
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_1:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding_template_Vlan_2:
-          capability: tosca.capabilities.network.Bindable
-          node: cmaui_port_2
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_1:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-    test_net1:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        shared: true
-        network_name:
-          get_input: jsa_net_name
-    test_Vlan2:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - template_VMInt_OAM_lb_1
-        name: vlan
-        virtual_network_refs:
-        - test_net1
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-    test_Vlan1:
-      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-      properties:
-        virtual_machine_interface_refs:
-        - test_Vlan2
-        name: vlan
-        virtual_network_refs:
-        - test_net1
-        virtual_machine_interface_properties:
-          sub_interface_vlan_tag:
-            get_input: lb_st_vlan_type_oam
-        virtual_machine_interface_allowed_address_pairs:
-          allowed_address_pair:
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ip_address
-              ip_prefix_len: 32
-            mac:
-              get_input: mac_address
-          - address_mode: active-standby
-            ip:
-              ip_prefix:
-                get_input: virtual_ipv6_address
-              ip_prefix_len: 128
-            mac:
-              get_input: mac_address
-        virtual_machine_interface_mac_addresses:
-          mac_address:
-          - get_input: mac_address
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-    server_cmaui_nova:
-      type: org.openecomp.resource.vfc.nodes.heat.cmaui
-      properties:
-        flavor:
-          get_input: cmaui_flavor
-        availability_zone:
-          get_input: availability_zone_0
-        image:
-          get_input: cmaui_image
-        contrail_service_instance_ind: true
-        name:
-          get_input:
-          - cmaui_names
-          - 0
-    test_nested:
-      type: org.openecomp.resource.abstract.nodes.heat.nested
-      directives:
-      - substitutable
-      properties:
-        p1: template_VMInt_OAM_lb_1
-        service_template_filter:
-          substitute_service_template: nestedServiceTemplate.yaml
-        p2: cmaui_port_2
-        net2: test_net2
-        net1: test_net1
-      requirements:
-      - link_template_Vlan_2:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net2
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_1:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding_template_Vlan_2:
-          capability: tosca.capabilities.network.Bindable
-          node: cmaui_port_2
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_1:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-  groups:
-    main_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/main.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-      members:
-      - cmaui_port_2
-      - test_nested_invalidConnection
-      - test_net2
-      - template_VMInt_OAM_lb_1
-      - test_resourceGroup
-      - test_net1
-      - test_Vlan2
-      - test_Vlan1
-      - server_cmaui_nova
-      - test_nested
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.cmaui:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    cmaui_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_names\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    template_PortTuple_LB1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: template_PortTuple_LB1\r
+      type: string\r
+    oam_sec_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_sec_group_name\r
+      type: string\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: lb_st_interface_type_oam\r
+      type: string\r
+    virtual_ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: virtual_ip_address\r
+      type: string\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: jsa_net_name\r
+      type: string\r
+      description: network name of jsa log network\r
+    vlan_ids:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vlan_ids\r
+      type: string\r
+    cmaui_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_image\r
+      type: string\r
+      description: Image for CMAUI server\r
+    virtual_ipv6_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: virtual_ipv6_address\r
+      type: string\r
+    cmaui_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_flavor\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    lb_st_vlan_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: lb_st_vlan_type_oam\r
+      type: string\r
+      description: dummy\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: mac_address\r
+      type: string\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_0\r
+      type: string\r
+      description: availabilityzone name\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_oam_ips\r
+      type: string\r
+  node_templates:\r
+    cmaui_port_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        replacement_policy: AUTO\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+        - get_input: security_group_name\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        network: test_net1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: server_cmaui_nova\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_nested_invalidConnection:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1: test_Vlan1\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+        p2: server_cmaui_nova\r
+      requirements:\r
+      - binding_template_Vlan_1:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: test_Vlan1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_net2:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        shared: true\r
+        network_name:\r
+          get_input: jsa_net_name\r
+    template_VMInt_OAM_lb_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - test_net1\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: server_cmaui_nova\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_resourceGroup:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1: template_VMInt_OAM_lb_1\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count: 9\r
+          mandatory: true\r
+        p2: cmaui_port_2\r
+        net2: test_net2\r
+        net1: test_net1\r
+      requirements:\r
+      - link_template_Vlan_2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_1:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding_template_Vlan_2:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: cmaui_port_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_1:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_net1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        shared: true\r
+        network_name:\r
+          get_input: jsa_net_name\r
+    test_Vlan2:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name: vlan\r
+        virtual_network_refs:\r
+        - test_net1\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode: active-standby\r
+            ip:\r
+              ip_prefix:\r
+                get_input: virtual_ip_address\r
+              ip_prefix_len: 32\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode: active-standby\r
+            ip:\r
+              ip_prefix:\r
+                get_input: virtual_ipv6_address\r
+              ip_prefix_len: 128\r
+            mac:\r
+              get_input: mac_address\r
+        virtual_machine_interface_mac_addresses:\r
+        - get_input: mac_address\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    test_Vlan1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name: vlan\r
+        virtual_network_refs:\r
+        - test_net1\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode: active-standby\r
+            ip:\r
+              ip_prefix:\r
+                get_input: virtual_ip_address\r
+              ip_prefix_len: 32\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode: active-standby\r
+            ip:\r
+              ip_prefix:\r
+                get_input: virtual_ipv6_address\r
+              ip_prefix_len: 128\r
+            mac:\r
+              get_input: mac_address\r
+        virtual_machine_interface_mac_addresses:\r
+        - get_input: mac_address\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+    server_cmaui_nova:\r
+      type: org.openecomp.resource.vfc.nodes.heat.cmaui\r
+      properties:\r
+        flavor:\r
+          get_input: cmaui_flavor\r
+        availability_zone:\r
+          get_input: availability_zone_0\r
+        image:\r
+          get_input: cmaui_image\r
+        contrail_service_instance_ind: true\r
+        name:\r
+          get_input:\r
+          - cmaui_names\r
+          - 0\r
+    test_nested:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        p1: template_VMInt_OAM_lb_1\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+        p2: cmaui_port_2\r
+        net2: test_net2\r
+        net1: test_net1\r
+      requirements:\r
+      - link_template_Vlan_2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_1:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding_template_Vlan_2:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: cmaui_port_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_1:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - cmaui_port_2\r
+      - test_nested_invalidConnection\r
+      - test_net2\r
+      - template_VMInt_OAM_lb_1\r
+      - test_resourceGroup\r
+      - test_net1\r
+      - test_Vlan2\r
+      - test_Vlan1\r
+      - server_cmaui_nova\r
+      - test_nested\r
\ No newline at end of file
index 8bdc627..18f72d1 100644 (file)
@@ -88,10 +88,6 @@ resources:
     type: OS::ContrailV2::VirtualMachineInterface
     properties:
       name: vlan
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
-        }
       virtual_machine_interface_mac_addresses:
         {
         virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
@@ -126,10 +122,6 @@ resources:
     type: OS::ContrailV2::VirtualMachineInterface
     properties:
       name: vlan
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
-        }
       virtual_machine_interface_mac_addresses:
         {
         virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
index 7cef7ff..d56b564 100644 (file)
-tosca_definitions_version: tosca_simple_yaml_1_0_0
-metadata:
-  template_name: Main
-imports:
-- openecomp_heat_index:
-    file: openecomp-heat/_index.yml
-- GlobalSubstitutionTypes:
-    file: GlobalSubstitutionTypesServiceTemplate.yaml
-node_types:
-  org.openecomp.resource.vfc.nodes.heat.cmaui:
-    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
-topology_template:
-  inputs:
-    cmaui_names:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_names
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    cmaui_image:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_image
-      type: string
-      description: Image for CMAUI server
-    template_PortTuple_LB1:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: template_PortTuple_LB1
-      type: string
-    cmaui_flavor:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_flavor
-      type: string
-      description: Flavor for CMAUI server
-    oam_sec_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: oam_sec_group_name
-      type: string
-    lb_st_interface_type_oam:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: lb_st_interface_type_oam
-      type: string
-    security_group_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: security_group_name
-      type: list
-      description: CMAUI1, CMAUI2 server names
-      entry_schema:
-        type: string
-    availability_zone_0:
-      label: availabilityzone name
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: availability_zone_0
-      type: string
-      description: availabilityzone name
-    cmaui_oam_ips:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: cmaui_oam_ips
-      type: string
-    contrail_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: contrail_net_name
-      type: string
-      description: network name of jsa log network
-    jsa_net_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: jsa_net_name
-      type: string
-    jsa_name:
-      hidden: false
-      immutable: false
-      annotations:
-        source:
-          type: org.openecomp.annotations.Source
-          properties:
-            vf_module_label:
-            - main
-            source_type: HEAT
-            param_name: jsa_name
-      type: string
-      description: network name of jsa log network
-  node_templates:
-    cmaui_port_2:
-      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
-      properties:
-        replacement_policy: AUTO
-        ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        security_groups:
-        - get_input: security_group_name
-        fixed_ips:
-        - ip_address:
-            get_input:
-            - cmaui_oam_ips
-            - 0
-        mac_requirements:
-          mac_count_required:
-            is_required: false
-        network: test_net1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: server_cmaui_nova
-          relationship: tosca.relationships.network.BindsTo
-    test_nested1Level:
-      type: org.openecomp.resource.abstract.nodes.heat.nested1
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested1ServiceTemplate.yaml
-        net2:
-          get_attribute:
-          - test_contrailV2_net2
-          - fq_name
-        net1: test_net1
-        port1: template_VMInt_OAM_lb_1
-        port2: cmaui_port_2
-      requirements:
-      - link_template_Vlan_2:
-          capability: tosca.capabilities.network.Linkable
-          node: test_contrailV2_net2
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_1:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_8_test_nested4Level_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_7_test_nested4Level_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_6_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_5_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_4_test_nested2Level:
-          capability: tosca.capabilities.network.Linkable
-          node: test_contrailV2_net2
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_3_test_nested2Level:
-          capability: tosca.capabilities.network.Linkable
-          node: test_contrailV2_net2
-          relationship: tosca.relationships.network.LinksTo
-      - binding_template_Vlan_2:
-          capability: tosca.capabilities.network.Bindable
-          node: cmaui_port_2
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_1:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_8_test_nested4Level_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_7_test_nested4Level_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_6_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_5_test_nested3Level_test_nested2Level:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_4_test_nested2Level:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_3_test_nested2Level:
-          capability: tosca.capabilities.network.Bindable
-          node: template_VMInt_OAM_lb_1
-          relationship: tosca.relationships.network.BindsTo
-    test_contrailV2_net2:
-      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
-      properties:
-        network_name:
-          get_input: contrail_net_name
-    template_VMInt_OAM_lb_1:
-      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
-      properties:
-        security_group_refs:
-        - get_input: oam_sec_group_name
-        virtual_network_refs:
-        - test_net1
-        virtual_machine_interface_properties:
-          service_interface_type:
-            get_input: lb_st_interface_type_oam
-        port_tuple_refs:
-        - get_input: template_PortTuple_LB1
-      requirements:
-      - link:
-          capability: tosca.capabilities.network.Linkable
-          node: test_net1
-          relationship: tosca.relationships.network.LinksTo
-      - binding:
-          capability: tosca.capabilities.network.Bindable
-          node: server_cmaui_nova
-          relationship: tosca.relationships.network.BindsTo
-    test_resourceGroup:
-      type: org.openecomp.resource.abstract.nodes.heat.nested3
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested3ServiceTemplate.yaml
-          count: 9
-          mandatory: true
-        net1:
-          list_join:
-          - ':'
-          - get_attribute:
-            - test_contrailV2_net2
-            - fq_name
-        indx:
-          get_property:
-          - SELF
-          - service_template_filter
-          - index_value
-        port1: cmaui_port_2
-      requirements:
-      - link_template_Vlan_7_test_nested4Level:
-          capability: tosca.capabilities.network.Linkable
-          node: test_contrailV2_net2
-          relationship: tosca.relationships.network.LinksTo
-      - link_template_Vlan_6:
-          capability: tosca.capabilities.network.Linkable
-          node: test_contrailV2_net2
-          relationship: tosca.relationships.network.LinksTo
-      - binding_template_Vlan_7_test_nested4Level:
-          capability: tosca.capabilities.network.Bindable
-          node: cmaui_port_2
-          relationship: tosca.relationships.network.BindsTo
-      - binding_template_Vlan_6:
-          capability: tosca.capabilities.network.Bindable
-          node: cmaui_port_2
-          relationship: tosca.relationships.network.BindsTo
-    test_net1:
-      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
-      properties:
-        shared: true
-        network_name:
-          get_input: jsa_net_name
-    test_nestedInvalidConnection:
-      type: org.openecomp.resource.abstract.nodes.heat.nested1
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested1ServiceTemplate.yaml
-        net1: server_cmaui_nova
-        port1: server_cmaui_nova
-    server_cmaui_nova:
-      type: org.openecomp.resource.vfc.nodes.heat.cmaui
-      properties:
-        flavor:
-          get_input: cmaui_flavor
-        availability_zone:
-          get_input: availability_zone_0
-        image:
-          get_input: cmaui_image
-        contrail_service_instance_ind: true
-        name:
-          get_input:
-          - cmaui_names
-          - 0
-  groups:
-    main_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/main.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: Paul Phillips, pnet2854 PROD)
-      members:
-      - cmaui_port_2
-      - test_nested1Level
-      - test_contrailV2_net2
-      - template_VMInt_OAM_lb_1
-      - test_resourceGroup
-      - test_net1
-      - test_nestedInvalidConnection
-      - server_cmaui_nova
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.cmaui:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    cmaui_names:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_names\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    cmaui_image:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_image\r
+      type: string\r
+      description: Image for CMAUI server\r
+    template_PortTuple_LB1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: template_PortTuple_LB1\r
+      type: string\r
+    cmaui_flavor:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_flavor\r
+      type: string\r
+      description: Flavor for CMAUI server\r
+    oam_sec_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_sec_group_name\r
+      type: string\r
+    lb_st_interface_type_oam:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: lb_st_interface_type_oam\r
+      type: string\r
+    security_group_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: security_group_name\r
+      type: list\r
+      description: CMAUI1, CMAUI2 server names\r
+      entry_schema:\r
+        type: string\r
+    availability_zone_0:\r
+      label: availabilityzone name\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_0\r
+      type: string\r
+      description: availabilityzone name\r
+    cmaui_oam_ips:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: cmaui_oam_ips\r
+      type: string\r
+    contrail_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: contrail_net_name\r
+      type: string\r
+      description: network name of jsa log network\r
+    jsa_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: jsa_net_name\r
+      type: string\r
+    jsa_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: jsa_name\r
+      type: string\r
+      description: network name of jsa log network\r
+  node_templates:\r
+    cmaui_port_2:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port\r
+      properties:\r
+        replacement_policy: AUTO\r
+        ip_requirements:\r
+        - ip_version: 4\r
+          ip_count_required:\r
+            is_required: true\r
+          floating_ip_count_required:\r
+            is_required: false\r
+        security_groups:\r
+        - get_input: security_group_name\r
+        fixed_ips:\r
+        - ip_address:\r
+            get_input:\r
+            - cmaui_oam_ips\r
+            - 0\r
+        mac_requirements:\r
+          mac_count_required:\r
+            is_required: false\r
+        network: test_net1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: server_cmaui_nova\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_nested1Level:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested1ServiceTemplate.yaml\r
+        net2:\r
+          get_attribute:\r
+          - test_contrailV2_net2\r
+          - fq_name\r
+        net1: test_net1\r
+        port1: template_VMInt_OAM_lb_1\r
+        port2: cmaui_port_2\r
+      requirements:\r
+      - link_template_Vlan_2:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_contrailV2_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_1:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_8_test_nested4Level_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_7_test_nested4Level_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_6_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_5_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_4_test_nested2Level:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_contrailV2_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_3_test_nested2Level:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_contrailV2_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding_template_Vlan_2:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: cmaui_port_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_1:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_8_test_nested4Level_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_7_test_nested4Level_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_6_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_5_test_nested3Level_test_nested2Level:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_4_test_nested2Level:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_3_test_nested2Level:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: template_VMInt_OAM_lb_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_contrailV2_net2:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          get_input: contrail_net_name\r
+    template_VMInt_OAM_lb_1:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        security_group_refs:\r
+        - get_input: oam_sec_group_name\r
+        virtual_network_refs:\r
+        - test_net1\r
+        virtual_machine_interface_properties:\r
+          service_interface_type:\r
+            get_input: lb_st_interface_type_oam\r
+        port_tuple_refs:\r
+        - get_input: template_PortTuple_LB1\r
+      requirements:\r
+      - link:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_net1\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: server_cmaui_nova\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_resourceGroup:\r
+      type: org.openecomp.resource.abstract.nodes.heat.nested3\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested3ServiceTemplate.yaml\r
+          count: 9\r
+          mandatory: true\r
+        net1:\r
+          list_join:\r
+          - ':'\r
+          - get_attribute:\r
+            - test_contrailV2_net2\r
+            - fq_name\r
+        indx:\r
+          get_property:\r
+          - SELF\r
+          - service_template_filter\r
+          - index_value\r
+        port1: cmaui_port_2\r
+      requirements:\r
+      - link_template_Vlan_7_test_nested4Level:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_contrailV2_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - link_template_Vlan_6:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: test_contrailV2_net2\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding_template_Vlan_7_test_nested4Level:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: cmaui_port_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - binding_template_Vlan_6:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: cmaui_port_2\r
+          relationship: tosca.relationships.network.BindsTo\r
+    test_net1:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net\r
+      properties:\r
+        shared: true\r
+        network_name:\r
+          get_input: jsa_net_name\r
+    test_nestedInvalidConnection:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested1\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        service_template_filter:\r
+          substitute_service_template: nested1ServiceTemplate.yaml\r
+        net1: server_cmaui_nova\r
+        port1: server_cmaui_nova\r
+    server_cmaui_nova:\r
+      type: org.openecomp.resource.vfc.nodes.heat.cmaui\r
+      properties:\r
+        flavor:\r
+          get_input: cmaui_flavor\r
+        availability_zone:\r
+          get_input: availability_zone_0\r
+        image:\r
+          get_input: cmaui_image\r
+        contrail_service_instance_ind: true\r
+        name:\r
+          get_input:\r
+          - cmaui_names\r
+          - 0\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: Paul Phillips, pnet2854 PROD)\r
+      members:\r
+      - cmaui_port_2\r
+      - test_nested1Level\r
+      - test_contrailV2_net2\r
+      - template_VMInt_OAM_lb_1\r
+      - test_resourceGroup\r
+      - test_net1\r
+      - test_nestedInvalidConnection\r
+      - server_cmaui_nova\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..662ea18
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      aap_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_sec_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      vdbe_subport_network:
+        type: string
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+        required: true
+        status: SUPPORTED
+      ip_v6_address:
+        type: string
+        description: IPv6 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      counter:
+        type: float
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+        required: true
+        status: SUPPORTED
+      subinterfaces_name_prefix:
+        type: string
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+        required: true
+        status: SUPPORTED
+      ip_address:
+        type: string
+        description: IPv4 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      aap_address_mode:
+        type: string
+        description: Address mode for the vDBE cluster IP
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix:
+        type: string
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      parent_interface:
+        type: string
+        description: Parent Contrail interface
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        description: HW MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      vlan_tag_list:
+        type: list
+        description: List of VLAN IDs to use for subinterfaces
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      aap_sec_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      vmac_address:
+        type: string
+        description: virtual MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix_len:
+        type: string
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_vdbe_untr_vmi_subport:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_untr_vmi_subport:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_vdbe_untr_vmi_subport:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_vdbe_untr_vmi_subport:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0510ab9
--- /dev/null
@@ -0,0 +1,329 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.vdbe:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    vf_module_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VF module inst
+    control_int_net_rpf:
+      hidden: false
+      immutable: false
+      type: string
+      description: Reverse Path Filtering enable or disable for the control virtual network
+    control_int_net_forwarding_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: forwarding mode of the control virtual network
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VF instance
+    vdbe_untrusted_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+    untrusted_num_vn:
+      hidden: false
+      immutable: false
+      type: float
+      description: Number of vDBE subinterface virtual Networks
+      constraints:
+      - in_range:
+        - 1
+        - 77
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    control_int_net_shared:
+      hidden: false
+      immutable: false
+      type: boolean
+      description: control virtual network shared
+    vdbe_untrusted_v6_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_untrusted_vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network
+    control_int_net_flood_unknown_unicast:
+      hidden: false
+      immutable: false
+      type: boolean
+      description: forwarding mode of the control virtual network
+    vdbe_aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    vnf_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VF inst
+    vdbe_name_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM Name for this vdbe node 1
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.
+    untrusted_vn_networks:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of subinterface virtual networks
+      entry_schema:
+        type: string
+    vdbe_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Image to use for vDBE
+    oam_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Name of NSDNet network from which the management IP addresses will be allocated
+    vdbe_aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vdbe_aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    vdbe_aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    untrusted_vlan_tags:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of subinterface vlan tags
+      entry_schema:
+        type: string
+    vdbe_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Flavor to use for vDBE
+    vdbe_hw_untr_mac_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network
+    untrusted_net_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed
+    vdbe_device_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VDBE device Name for this vdbe VNF
+    vdbe_aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_node_1:
+      type: org.openecomp.resource.vfc.nodes.heat.vdbe
+      properties:
+        flavor:
+          get_input: vdbe_flavor_name
+        availability_zone:
+          get_input: availability_zone_1
+        image:
+          get_input: vdbe_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+        name:
+          get_input: vdbe_name_1
+    vdbe_untr_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        name:
+          str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        virtual_network_refs:
+        - get_input: untrusted_net_name
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: vdbe_aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: vdbe_aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vdbe_untrusted_vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: vdbe_aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: vdbe_hw_untr_mac_1
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: vdbe_aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vdbe_untrusted_vmac_address
+        virtual_machine_interface_mac_addresses:
+        - get_input: vdbe_hw_untr_mac_1
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_node_1
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_untr_1_subports:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        aap_untrusted_ip_prefix:
+          get_input: vdbe_aap_untrusted_ip_prefix
+        attr_test:
+          get_attribute:
+          - vdbe_untr_1_port
+          - name
+        aap_sec_untrusted_ip_prefix:
+          get_input: vdbe_aap_sec_untrusted_ip_prefix
+        vdbe_subport_network: control_int_net
+        ip_v6_address:
+          get_input: vdbe_untrusted_v6_ip_1
+        counter:
+          get_input: vnf_id
+        ip_address:
+          get_input: vdbe_untrusted_ip_1
+        subinterfaces_name_prefix:
+          str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        aap_address_mode:
+          get_input: aap_address_mode
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count:
+            get_input: untrusted_num_vn
+          mandatory: false
+        aap_untrusted_v6_ip_prefix:
+          get_input: vdbe_aap_untrusted_v6_ip_prefix
+        parent_interface: vdbe_untr_1_port
+        mac_address:
+          get_input: vdbe_hw_untr_mac_1
+        vlan_tag_list:
+          get_input: untrusted_vlan_tags
+        aap_sec_untrusted_ip_prefix_len:
+          get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+        vmac_address:
+          get_input: vdbe_untrusted_vmac_address
+        aap_untrusted_v6_ip_prefix_len:
+          get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+        aap_untrusted_ip_prefix_len:
+          get_input: vdbe_aap_untrusted_ip_prefix_len
+      requirements:
+      - link_vdbe_untr_vmi_subport:
+          capability: tosca.capabilities.network.Linkable
+          node: control_int_net
+          relationship: tosca.relationships.network.LinksTo
+      - binding_vdbe_untr_vmi_subport:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_untr_1_port
+          relationship: tosca.relationships.network.BindsTo
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: control_int_net
+          relationship: tosca.relationships.DependsOn
+    control_int_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          str_replace:
+            template: VNF_NAME_control_net
+            params:
+              VNF_NAME:
+                get_input: vnf_name
+        network_ipam_refs:
+          get_attribute:
+          - vdbe_untr_1_subports
+          - count
+      requirements:
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: vdbe_untr_1_subports
+          relationship: tosca.relationships.DependsOn
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: |
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+      members:
+      - vdbe_node_1
+      - vdbe_untr_1_port
+      - vdbe_untr_1_subports
+      - control_int_net
+  outputs:
+    out1:
+      description: output_test
+      value:
+        get_attribute:
+        - vdbe_untr_1_subports
+        - name
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/expectedoutputfiles/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..3ec312a
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+    aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    vdbe_subport_network:
+      hidden: false
+      immutable: false
+      type: string
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+    ip_v6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+    counter:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+    subinterfaces_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: HW MAC address to use for subinterface
+    vlan_tag_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual MAC address to use for subinterface
+    aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_untr_vmi_subport:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: parent_interface
+        name:
+          str_replace:
+            template: $NAME_$INDEX
+            params:
+              $NAME:
+                get_input: subinterfaces_name_prefix
+              $INDEX:
+                get_input:
+                - vlan_tag_list
+                - get_input: counter
+        virtual_network_refs:
+        - get_input: vdbe_subport_network
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - vlan_tag_list
+            - get_input: counter
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: mac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vmac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    nested_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested.yml
+        description: cmaui server template for vMMSC
+      members:
+      - vdbe_untr_vmi_subport
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+    capabilities:
+      feature_vdbe_untr_vmi_subport:
+      - vdbe_untr_vmi_subport
+      - feature
+    requirements:
+      dependency_vdbe_untr_vmi_subport:
+      - vdbe_untr_vmi_subport
+      - dependency
+      link_vdbe_untr_vmi_subport:
+      - vdbe_untr_vmi_subport
+      - link
+      binding_vdbe_untr_vmi_subport:
+      - vdbe_untr_vmi_subport
+      - binding
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/MANIFEST.json
new file mode 100644 (file)
index 0000000..aca75b5
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true"
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/main.yml
new file mode 100644 (file)
index 0000000..994b081
--- /dev/null
@@ -0,0 +1,375 @@
+heat_template_version: 2013-05-23
+
+description: >
+  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  control_int_net_forwarding_mode:
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf:
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared:
+    description: "control virtual network shared"
+    type: boolean
+  control_int_net_flood_unknown_unicast:
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  oam_net_name:
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  untrusted_net_name:
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn:
+    constraints:
+      -
+        range:
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags:
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks:
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_device_name:
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_hw_untr_mac_1:
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_name_1:
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_untrusted_ip_1:
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1:
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address:
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_flavor_name:
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_image_name:
+    description: "Image to use for vDBE"
+    type: string
+  vnf_id:
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name:
+    description: "Unique name for this VF instance"
+    type: string
+  vf_module_id:
+    description: "Unique ID for this VF module inst"
+    type: string
+  availability_zone_1:
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+resources:
+  vdbe_node_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone:
+        get_param: availability_zone_1
+      flavor:
+        get_param: vdbe_flavor_name
+      image:
+        get_param: vdbe_image_name
+      metadata:
+        vf_module_id:
+          get_param: vf_module_id
+        vnf_id:
+          get_param: vnf_id
+        vnf_name:
+          get_param: vnf_name
+      name:
+        get_param: vdbe_name_1
+      networks:
+        - port: {get_resource: vdbe_0_untr_vmi_0}
+        - port: {get_resource: vdbe_untr_vmi}
+        - port: {get_resource: vdbe_0_oam_port_1}
+        - port: {get_resource: vdbe_oam_port}
+        - port: {get_resource: vdbe_oam_port_2}
+        - port: {get_resource: vdbe_0_oam_neutronNotFollowingHeatGuidelines_2}
+        - port: {get_resource: vdbe_0_untr_vmiNotFollowingHeatGuidelines_1}
+  vdbe_untr_1_subports:
+    type: OS::Heat::ResourceGroup
+    depends_on: control_int_net
+    properties:
+      count:
+        get_param: untrusted_num_vn
+      resource_def:
+        type: nested.yml
+        properties:
+          attr_test: { get_attr: [ vdbe_0_untr_vmi_0, name ] }
+          aap_address_mode:
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix:
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len:
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter:
+            get_param: vnf_id
+          ip_address:
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address:
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address:
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface:
+            get_resource: vdbe_0_untr_vmi_0
+          subinterfaces_name_prefix:
+            str_replace:
+              params:
+                DBE:
+                  get_param: vdbe_device_name
+                VM_NAME:
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list:
+            get_param: untrusted_vlan_tags
+          vmac_address:
+            get_param: vdbe_untrusted_vmac_address
+          vdbe_subport_network:
+            get_resource: control_int_net
+  vdbe_0_untr_vmi_0:
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_param: untrusted_net_name
+    type: OS::ContrailV2::VirtualMachineInterface
+
+  vdbe_untr_vmi:
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_param: untrusted_net_name
+    type: OS::ContrailV2::VirtualMachineInterface
+
+  vdbe_0_oam_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: Test
+      fixed_ips: [{"ip_address": 1.2.3.4}]
+      replacement_policy: AUTO
+
+  vdbe_oam_port:
+    type: OS::Neutron::Port
+    properties:
+      network: Test
+      fixed_ips: [{"ip_address": 1.2.3.4}]
+      replacement_policy: AUTO
+
+  vdbe_oam_port_2:
+    type: OS::Neutron::Port
+    properties:
+      network: Test
+      fixed_ips: [{"ip_address": 1.2.3.4}]
+      replacement_policy: AUTO
+
+  vdbe_0_oam_neutronNotFollowingHeatGuidelines_2:
+    type: OS::Neutron::Port
+    properties:
+      network: Test
+      fixed_ips: [{"ip_address": 1.2.3.4}]
+      replacement_policy: AUTO
+
+  vdbe_0_untr_vmiNotFollowingHeatGuidelines_1:
+    properties:
+      name:
+        str_replace:
+          params:
+            DBE:
+              get_param: vdbe_device_name
+            VM_NAME:
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_hw_untr_mac_1
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs:
+        -
+          get_param: untrusted_net_name
+    type: OS::ContrailV2::VirtualMachineInterface
+
+  control_int_net:
+    type: OS::ContrailV2::VirtualNetwork
+    depends_on: vdbe_untr_1_subports
+    properties:
+      network_ipam_refs: { get_attr: [ vdbe_untr_1_subports, count ] }
+      flood_unknown_unicast:
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared:
+        get_param: control_int_net_shared
+      name:
+        str_replace:
+          params:
+            VNF_NAME:
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties:
+        virtual_network_properties_forwarding_mode:
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf:
+          get_param: control_int_net_rpf
+outputs:
+  out1:
+      description: output_test
+      value: {get_attr: [vdbe_untr_1_subports, name]}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/portNetworkRole/inputfiles/nested.yml
new file mode 100644 (file)
index 0000000..059394b
--- /dev/null
@@ -0,0 +1,114 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+  aap_address_mode:
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  aap_sec_untrusted_ip_prefix:
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  aap_sec_untrusted_ip_prefix_len:
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix:
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_ip_prefix_len:
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix:
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  aap_untrusted_v6_ip_prefix_len:
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  counter:
+    description: "Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances."
+    type: number
+  mac_address:
+    description: "HW MAC address to use for subinterface"
+    type: string
+  parent_interface:
+    description: "Parent Contrail interface"
+    type: string
+  subinterfaces_name_prefix:
+    description: "Combined with subinterface_instance_index, this is used as the name of the subinterface resource"
+    type: string
+  vlan_tag_list:
+    description: "List of VLAN IDs to use for subinterfaces"
+    type: comma_delimited_list
+  vmac_address:
+    description: "virtual MAC address to use for subinterface"
+    type: string
+  vdbe_subport_network:
+    description: "List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list"
+    type: string
+  ip_address:
+    description: "IPv4 address associated with subinterfaces"
+    type: string
+  ip_v6_address:
+    description: "IPv6 address associated with subinterfaces"
+    type: string
+resources:
+  vdbe_untr_vmi_subport:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          params:
+            $INDEX:
+              get_param:
+                - vlan_tag_list
+                -
+                  get_param: counter
+            $NAME:
+              get_param: subinterfaces_name_prefix
+          template: $NAME_$INDEX
+      virtual_machine_interface_allowed_address_pairs:
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: mac_address
+          -
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
+                get_param: aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
+                get_param: aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
+              get_param: vmac_address
+      virtual_machine_interface_mac_addresses:
+        virtual_machine_interface_mac_addresses_mac_address:
+          -
+            get_param: mac_address
+      virtual_machine_interface_properties:
+        virtual_machine_interface_properties_sub_interface_vlan_tag:
+          get_param:
+            - vlan_tag_list
+            -
+              get_param: counter
+      virtual_machine_interface_refs:
+          [{get_param: parent_interface}]
+      virtual_network_refs:
+          [{get_param: vdbe_subport_network}]
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..b47023a
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      aap_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_sec_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      ip_v6_address:
+        type: string
+        description: IPv6 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      counter:
+        type: float
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+        required: true
+        status: SUPPORTED
+      subinterfaces_name_prefix:
+        type: string
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+        required: true
+        status: SUPPORTED
+      ip_address:
+        type: string
+        description: IPv4 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      aap_address_mode:
+        type: string
+        description: Address mode for the vDBE cluster IP
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix:
+        type: string
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      parent_interface:
+        type: string
+        description: Parent Contrail interface
+        required: true
+        status: SUPPORTED
+      vn_network_list:
+        type: string
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        description: HW MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      vlan_tag_list:
+        type: list
+        description: List of VLAN IDs to use for subinterfaces
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      aap_sec_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      vmac_address:
+        type: string
+        description: virtual MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix_len:
+        type: string
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_vdbe_untr_x_subport:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_untr_x_subport:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_vdbe_untr_x_subport:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_vdbe_untr_x_subport:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9609e4a
--- /dev/null
@@ -0,0 +1,598 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.nodes.heat.vdbe:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    vf_module_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vf_module_id
+      type: string
+      description: Unique ID for this VF module inst
+    control_int_net_rpf:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_rpf
+      type: string
+      description: Reverse Path Filtering enable or disable for the control virtual network
+    control_int_net_forwarding_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_forwarding_mode
+      type: string
+      description: forwarding mode of the control virtual network
+    vnf_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vnf_name
+      type: string
+      description: Unique name for this VF instance
+    vdbe_untrusted_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_untrusted_ip_1
+      type: string
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+    untrusted_num_vn:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: untrusted_num_vn
+      type: float
+      description: Number of vDBE subinterface virtual Networks
+      constraints:
+      - in_range:
+        - 1
+        - 77
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: aap_address_mode
+      type: string
+      description: Address mode for the vDBE cluster IP
+    control_int_net_shared:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_shared
+      type: boolean
+      description: control virtual network shared
+    vdbe_untrusted_v6_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_untrusted_v6_ip_1
+      type: string
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_untrusted_vmac_address:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_untrusted_vmac_address
+      type: string
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network
+    control_int_net_flood_unknown_unicast:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: control_int_net_flood_unknown_unicast
+      type: boolean
+      description: forwarding mode of the control virtual network
+    vdbe_aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_sec_untrusted_ip_prefix
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    vnf_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vnf_id
+      type: string
+      description: Unique ID for this VF inst
+    vdbe_name_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_name_1
+      type: string
+      description: VM Name for this vdbe node 1
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: availability_zone_1
+      type: string
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.
+    untrusted_vn_networks:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: untrusted_vn_networks
+      type: list
+      description: List of subinterface virtual networks
+      entry_schema:
+        type: string
+    vdbe_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_image_name
+      type: string
+      description: Image to use for vDBE
+    oam_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: Name of NSDNet network from which the management IP addresses will be allocated
+    vdbe_aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vdbe_aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_v6_ip_prefix
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    vdbe_aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    untrusted_vlan_tags:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: untrusted_vlan_tags
+      type: list
+      description: List of subinterface vlan tags
+      entry_schema:
+        type: string
+    vdbe_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_flavor_name
+      type: string
+      description: Flavor to use for vDBE
+    counter:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: counter
+      type: float
+      description: Counter.
+    vdbe_hw_untr_mac_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_hw_untr_mac_1
+      type: string
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network
+    untrusted_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: untrusted_net_name
+      type: string
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed
+    vdbe_device_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_device_name
+      type: string
+      description: VDBE device Name for this vdbe VNF
+    vdbe_aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_ip_prefix
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_untr_2_subports:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        aap_untrusted_ip_prefix:
+          get_input: vdbe_aap_untrusted_ip_prefix
+        aap_sec_untrusted_ip_prefix:
+          get_input: vdbe_aap_sec_untrusted_ip_prefix
+        ip_v6_address:
+          get_input: vdbe_untrusted_v6_ip_1
+        counter:
+          get_input: counter
+        ip_address:
+          get_input: vdbe_untrusted_ip_1
+        subinterfaces_name_prefix:
+          str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        aap_address_mode:
+          get_input: aap_address_mode
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count: 5
+          mandatory: true
+        aap_untrusted_v6_ip_prefix:
+          get_input: vdbe_aap_untrusted_v6_ip_prefix
+        parent_interface: vdbe_untr_1_port
+        vn_network_list:
+          get_input: untrusted_vn_networks
+        mac_address:
+          get_input: vdbe_hw_untr_mac_1
+        vlan_tag_list:
+          get_input: untrusted_vlan_tags
+        aap_sec_untrusted_ip_prefix_len:
+          get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+        vmac_address:
+          get_input: vdbe_untrusted_vmac_address
+        aap_untrusted_v6_ip_prefix_len:
+          get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+        aap_untrusted_ip_prefix_len:
+          get_input: vdbe_aap_untrusted_ip_prefix_len
+      requirements:
+      - binding_vdbe_untr_x_subport:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_untr_1_port
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_node_1:
+      type: org.openecomp.resource.vfc.nodes.heat.vdbe
+      properties:
+        flavor:
+          get_input: vdbe_flavor_name
+        availability_zone:
+          get_input: availability_zone_1
+        image:
+          get_input: vdbe_image_name
+        metadata:
+          vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+        name:
+          get_input: vdbe_name_1
+    vdbe_untr_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        name:
+          str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        virtual_network_refs:
+        - control_int_net
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: vdbe_aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: vdbe_aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vdbe_untrusted_vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: vdbe_aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: vdbe_hw_untr_mac_1
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: vdbe_aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vdbe_untrusted_vmac_address
+        virtual_machine_interface_mac_addresses:
+        - get_input: vdbe_hw_untr_mac_1
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: control_int_net
+          relationship: tosca.relationships.network.LinksTo
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_node_1
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_untr_1_subports:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        aap_untrusted_ip_prefix:
+          get_input: vdbe_aap_untrusted_ip_prefix
+        aap_sec_untrusted_ip_prefix:
+          get_input: vdbe_aap_sec_untrusted_ip_prefix
+        ip_v6_address:
+          get_input: vdbe_untrusted_v6_ip_1
+        counter:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        ip_address:
+          get_input: vdbe_untrusted_ip_1
+        subinterfaces_name_prefix:
+          str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        aap_address_mode:
+          get_input: aap_address_mode
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count:
+            get_input: untrusted_num_vn
+          mandatory: false
+        aap_untrusted_v6_ip_prefix:
+          get_input: vdbe_aap_untrusted_v6_ip_prefix
+        parent_interface: vdbe_untr_1_port
+        vn_network_list:
+          get_input: untrusted_vn_networks
+        mac_address:
+          get_input: vdbe_hw_untr_mac_1
+        vlan_tag_list:
+          get_input: untrusted_vlan_tags
+        aap_sec_untrusted_ip_prefix_len:
+          get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+        vmac_address:
+          get_input: vdbe_untrusted_vmac_address
+        aap_untrusted_v6_ip_prefix_len:
+          get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+        aap_untrusted_ip_prefix_len:
+          get_input: vdbe_aap_untrusted_ip_prefix_len
+      requirements:
+      - binding_vdbe_untr_x_subport:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_untr_1_port
+          relationship: tosca.relationships.network.BindsTo
+    control_int_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          str_replace:
+            template: VNF_NAME_control_net
+            params:
+              VNF_NAME:
+                get_input: vnf_name
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: |
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+      members:
+      - vdbe_untr_2_subports
+      - vdbe_node_1
+      - vdbe_untr_1_port
+      - vdbe_untr_1_subports
+      - control_int_net
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..f9538d4
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+    aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    ip_v6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+    counter:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+    subinterfaces_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    vn_network_list:
+      hidden: false
+      immutable: false
+      type: string
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: HW MAC address to use for subinterface
+    vlan_tag_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual MAC address to use for subinterface
+    aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_untr_x_subport:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: parent_interface
+        name:
+          str_replace:
+            template: $NAME_$INDEX
+            params:
+              $NAME:
+                get_input: subinterfaces_name_prefix
+              $INDEX:
+                get_input:
+                - vlan_tag_list
+                - get_input: counter
+        virtual_network_refs:
+        - get_input: vn_network_list
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - vlan_tag_list
+            - get_input: counter
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: mac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vmac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    nested_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested.yml
+        description: cmaui server template for vMMSC
+      members:
+      - vdbe_untr_x_subport
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+    capabilities:
+      feature_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - feature
+    requirements:
+      link_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - link
+      dependency_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - dependency
+      binding_vdbe_untr_x_subport:
+      - vdbe_untr_x_subport
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4176447
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: GlobalSubstitutionTypes\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+node_types:\r
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:\r
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute\r
+    properties:\r
+      aap_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_sec_untrusted_ip_prefix:\r
+        type: string\r
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vdbe_subport_network:\r
+        type: string\r
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_v6_address:\r
+        type: string\r
+        description: IPv6 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      counter:\r
+        type: float\r
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+        required: true\r
+        status: SUPPORTED\r
+      subinterfaces_name_prefix:\r
+        type: string\r
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+        required: true\r
+        status: SUPPORTED\r
+      ip_address:\r
+        type: string\r
+        description: IPv4 address associated with subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_address_mode:\r
+        type: string\r
+        description: Address mode for the vDBE cluster IP\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix:\r
+        type: string\r
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      parent_interface:\r
+        type: string\r
+        description: Parent Contrail interface\r
+        required: true\r
+        status: SUPPORTED\r
+      mac_address:\r
+        type: string\r
+        description: HW MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      vlan_tag_list:\r
+        type: list\r
+        description: List of VLAN IDs to use for subinterfaces\r
+        required: true\r
+        status: SUPPORTED\r
+        entry_schema:\r
+          type: string\r
+      aap_sec_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      vmac_address:\r
+        type: string\r
+        description: virtual MAC address to use for subinterface\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_v6_ip_prefix_len:\r
+        type: string\r
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+      aap_untrusted_ip_prefix_len:\r
+        type: string\r
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+        required: true\r
+        status: SUPPORTED\r
+    requirements:\r
+    - dependency_vdbe_untr_vmi_subport:\r
+        capability: tosca.capabilities.Node\r
+        node: tosca.nodes.Root\r
+        relationship: tosca.relationships.DependsOn\r
+        occurrences:\r
+        - 0\r
+        - UNBOUNDED\r
+    - link_vdbe_untr_vmi_subport:\r
+        capability: tosca.capabilities.network.Linkable\r
+        relationship: tosca.relationships.network.LinksTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    - binding_vdbe_untr_vmi_subport:\r
+        capability: tosca.capabilities.network.Bindable\r
+        node: org.openecomp.resource.cp.nodes.network.Port\r
+        relationship: tosca.relationships.network.BindsTo\r
+        occurrences:\r
+        - 1\r
+        - 1\r
+    capabilities:\r
+      feature_vdbe_untr_vmi_subport:\r
+        type: tosca.capabilities.Node\r
+        occurrences:\r
+        - 1\r
+        - UNBOUNDED\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d6f832f
--- /dev/null
@@ -0,0 +1,553 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: Main\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+node_types:\r
+  org.openecomp.resource.vfc.nodes.heat.vdbe:\r
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server\r
+topology_template:\r
+  inputs:\r
+    vf_module_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vf_module_id\r
+      type: string\r
+      description: Unique ID for this VF module inst\r
+    control_int_net_rpf:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_rpf\r
+      type: string\r
+      description: Reverse Path Filtering enable or disable for the control virtual network\r
+    control_int_net_forwarding_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_forwarding_mode\r
+      type: string\r
+      description: forwarding mode of the control virtual network\r
+    vnf_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_name\r
+      type: string\r
+      description: Unique name for this VF instance\r
+    vdbe_untrusted_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_ip_1\r
+      type: string\r
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_num_vn:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_num_vn\r
+      type: float\r
+      description: Number of vDBE subinterface virtual Networks\r
+      constraints:\r
+      - in_range:\r
+        - 1\r
+        - 77\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: aap_address_mode\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    control_int_net_shared:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_shared\r
+      type: boolean\r
+      description: control virtual network shared\r
+    vdbe_untrusted_v6_ip_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_v6_ip_1\r
+      type: string\r
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network\r
+    vdbe_untrusted_vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_untrusted_vmac_address\r
+      type: string\r
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network\r
+    control_int_net_flood_unknown_unicast:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: control_int_net_flood_unknown_unicast\r
+      type: boolean\r
+      description: forwarding mode of the control virtual network\r
+    vdbe_aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vnf_id:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vnf_id\r
+      type: string\r
+      description: Unique ID for this VF inst\r
+    vdbe_name_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_name_1\r
+      type: string\r
+      description: VM Name for this vdbe node 1\r
+    availability_zone_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: availability_zone_1\r
+      type: string\r
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.\r
+    untrusted_vn_networks:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vn_networks\r
+      type: list\r
+      description: List of subinterface virtual networks\r
+      entry_schema:\r
+        type: string\r
+    vdbe_image_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_image_name\r
+      type: string\r
+      description: Image to use for vDBE\r
+    oam_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: oam_net_name\r
+      type: string\r
+      description: Name of NSDNet network from which the management IP addresses will be allocated\r
+    vdbe_aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    vdbe_aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    untrusted_vlan_tags:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_vlan_tags\r
+      type: list\r
+      description: List of subinterface vlan tags\r
+      entry_schema:\r
+        type: string\r
+    vdbe_flavor_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_flavor_name\r
+      type: string\r
+      description: Flavor to use for vDBE\r
+    vdbe_hw_untr_mac_1:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_hw_untr_mac_1\r
+      type: string\r
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network\r
+    untrusted_net_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: untrusted_net_name\r
+      type: string\r
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed\r
+    vdbe_device_name:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_device_name\r
+      type: string\r
+      description: VDBE device Name for this vdbe VNF\r
+    vdbe_aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      annotations:\r
+        source:\r
+          type: org.openecomp.annotations.Source\r
+          properties:\r
+            vf_module_label:\r
+            - main\r
+            source_type: HEAT\r
+            param_name: vdbe_aap_untrusted_ip_prefix\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_node_1:\r
+      type: org.openecomp.resource.vfc.nodes.heat.vdbe\r
+      properties:\r
+        flavor:\r
+          get_input: vdbe_flavor_name\r
+        availability_zone:\r
+          get_input: availability_zone_1\r
+        image:\r
+          get_input: vdbe_image_name\r
+        metadata:\r
+          vf_module_id:\r
+            get_input: vf_module_id\r
+          vnf_id:\r
+            get_input: vnf_id\r
+          vnf_name:\r
+            get_input: vnf_name\r
+        name:\r
+          get_input: vdbe_name_1\r
+    vdbe_untr_1_port:\r
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface\r
+      properties:\r
+        name:\r
+          str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        virtual_network_refs:\r
+        - get_input: untrusted_net_name\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: vdbe_aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: vdbe_aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vdbe_untrusted_vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vdbe_hw_untr_mac_1\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vdbe_untrusted_vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+        - get_input: vdbe_hw_untr_mac_1\r
+      requirements:\r
+      - binding:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_node_1\r
+          relationship: tosca.relationships.network.BindsTo\r
+    vdbe_untr_1_subports:\r
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+      directives:\r
+      - substitutable\r
+      properties:\r
+        aap_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_ip_prefix\r
+        attr_test:\r
+          get_attribute:\r
+          - vdbe_untr_1_port\r
+          - name\r
+        aap_sec_untrusted_ip_prefix:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix\r
+        vdbe_subport_network: control_int_net\r
+        ip_v6_address:\r
+          get_input: vdbe_untrusted_v6_ip_1\r
+        counter:\r
+          get_input: vnf_id\r
+        ip_address:\r
+          get_input: vdbe_untrusted_ip_1\r
+        subinterfaces_name_prefix:\r
+          str_replace:\r
+            template: VM_NAMEDBE001p1n004\r
+            params:\r
+              DBE:\r
+                get_input: vdbe_device_name\r
+              VM_NAME:\r
+                get_input: vdbe_name_1\r
+        aap_address_mode:\r
+          get_input: aap_address_mode\r
+        service_template_filter:\r
+          substitute_service_template: nestedServiceTemplate.yaml\r
+          count:\r
+            get_input: untrusted_num_vn\r
+          mandatory: false\r
+        aap_untrusted_v6_ip_prefix:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix\r
+        parent_interface: vdbe_untr_1_port\r
+        mac_address:\r
+          get_input: vdbe_hw_untr_mac_1\r
+        vlan_tag_list:\r
+          get_input: untrusted_vlan_tags\r
+        aap_sec_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_sec_untrusted_ip_prefix_len\r
+        vmac_address:\r
+          get_input: vdbe_untrusted_vmac_address\r
+        aap_untrusted_v6_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_v6_ip_prefix_len\r
+        aap_untrusted_ip_prefix_len:\r
+          get_input: vdbe_aap_untrusted_ip_prefix_len\r
+      requirements:\r
+      - link_vdbe_untr_vmi_subport:\r
+          capability: tosca.capabilities.network.Linkable\r
+          node: control_int_net\r
+          relationship: tosca.relationships.network.LinksTo\r
+      - binding_vdbe_untr_vmi_subport:\r
+          capability: tosca.capabilities.network.Bindable\r
+          node: vdbe_untr_1_port\r
+          relationship: tosca.relationships.network.BindsTo\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: control_int_net\r
+          relationship: tosca.relationships.DependsOn\r
+    control_int_net:\r
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork\r
+      properties:\r
+        network_name:\r
+          str_replace:\r
+            template: VNF_NAME_control_net\r
+            params:\r
+              VNF_NAME:\r
+                get_input: vnf_name\r
+        network_ipam_refs:\r
+          get_attribute:\r
+          - vdbe_untr_1_subports\r
+          - count\r
+      requirements:\r
+      - dependency:\r
+          capability: tosca.capabilities.Node\r
+          node: vdbe_untr_1_subports\r
+          relationship: tosca.relationships.DependsOn\r
+  groups:\r
+    main_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/main.yml\r
+        description: |\r
+          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)\r
+      members:\r
+      - vdbe_node_1\r
+      - vdbe_untr_1_port\r
+      - vdbe_untr_1_subports\r
+      - control_int_net\r
+  outputs:\r
+    out1:\r
+      description: output_test\r
+      value:\r
+        get_attribute:\r
+        - vdbe_untr_1_subports\r
+        - name\r
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2eb726c
--- /dev/null
@@ -0,0 +1,171 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0\r
+metadata:\r
+  template_name: nested\r
+imports:\r
+- openecomp_heat_index:\r
+    file: openecomp-heat/_index.yml\r
+- GlobalSubstitutionTypes:\r
+    file: GlobalSubstitutionTypesServiceTemplate.yaml\r
+topology_template:\r
+  inputs:\r
+    aap_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for primary vDBE VM on the VAN untrusted network\r
+    aap_sec_untrusted_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network\r
+    vdbe_subport_network:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list\r
+    ip_v6_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv6 address associated with subinterfaces\r
+    counter:\r
+      hidden: false\r
+      immutable: false\r
+      type: float\r
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.\r
+    subinterfaces_name_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource\r
+    ip_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: IPv4 address associated with subinterfaces\r
+    aap_address_mode:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Address mode for the vDBE cluster IP\r
+    aap_untrusted_v6_ip_prefix:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network\r
+    parent_interface:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: Parent Contrail interface\r
+    mac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: HW MAC address to use for subinterface\r
+    vlan_tag_list:\r
+      hidden: false\r
+      immutable: false\r
+      type: list\r
+      description: List of VLAN IDs to use for subinterfaces\r
+      entry_schema:\r
+        type: string\r
+    aap_sec_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network\r
+    vmac_address:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: virtual MAC address to use for subinterface\r
+    aap_untrusted_v6_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network\r
+    aap_untrusted_ip_prefix_len:\r
+      hidden: false\r
+      immutable: false\r
+      type: string\r
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network\r
+  node_templates:\r
+    vdbe_untr_vmi_subport:\r
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface\r
+      properties:\r
+        virtual_machine_interface_refs:\r
+        - get_input: parent_interface\r
+        name:\r
+          str_replace:\r
+            template: $NAME_$INDEX\r
+            params:\r
+              $NAME:\r
+                get_input: subinterfaces_name_prefix\r
+              $INDEX:\r
+                get_input:\r
+                - vlan_tag_list\r
+                - get_input: counter\r
+        virtual_network_refs:\r
+        - get_input: vdbe_subport_network\r
+        virtual_machine_interface_properties:\r
+          sub_interface_vlan_tag:\r
+            get_input:\r
+            - vlan_tag_list\r
+            - get_input: counter\r
+        virtual_machine_interface_allowed_address_pairs:\r
+          allowed_address_pair:\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_sec_untrusted_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_sec_untrusted_ip_prefix_len\r
+            mac:\r
+              get_input: mac_address\r
+          - address_mode:\r
+              get_input: aap_address_mode\r
+            ip:\r
+              ip_prefix:\r
+                get_input: aap_untrusted_v6_ip_prefix\r
+              ip_prefix_len:\r
+                get_input: aap_untrusted_v6_ip_prefix_len\r
+            mac:\r
+              get_input: vmac_address\r
+        virtual_machine_interface_mac_addresses:\r
+          mac_address:\r
+          - get_input: mac_address\r
+  groups:\r
+    nested_group:\r
+      type: org.openecomp.groups.heat.HeatStack\r
+      properties:\r
+        heat_file: ../Artifacts/nested.yml\r
+        description: cmaui server template for vMMSC\r
+      members:\r
+      - vdbe_untr_vmi_subport\r
+  substitution_mappings:\r
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested\r
+    capabilities:\r
+      feature_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - feature\r
+    requirements:\r
+      dependency_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - dependency\r
+      link_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - link\r
+      binding_vdbe_untr_vmi_subport:\r
+      - vdbe_untr_vmi_subport\r
+      - binding\r
\ No newline at end of file
index f47796f..79fba79 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -75,6 +75,9 @@ public class ToscaNodeType {
   public static final String NETWORK_SUB_INTERFACE = CP_NODE_TYPE_PREFIX + "network.SubInterface";
   public static final String CONTRAILV2_VLAN_SUB_INTERFACE = CP_NODE_TYPE_PREFIX
       + "heat.network.contrailV2.VLANSubInterface";
+  public static final String NESTED_HEAT_RESOURCE_TYPE_PREFIX = ABSTRACT_NODE_TYPE_PREFIX + "heat.";
+  public static final String VLAN_SUB_INTERFACE_RESOURCE_TYPE_PREFIX =
+      NESTED_HEAT_RESOURCE_TYPE_PREFIX + "subinterface.";
   //Port Mirroring external node types
   public static final String EXTERNAL_CP = EXTERNAL_CP_NODE_TYPE_PREFIX + "extCP";
   public static final String EXTERNAL_CONTRAIL_PORT = EXTERNAL_CP_NODE_TYPE_PREFIX