aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml236
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/MainServiceTemplate.yaml240
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml207
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml193
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/MANIFEST.json30
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.env14
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.yaml82
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4_2.yaml79
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1.yaml114
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1_2.yaml120
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nimbus-ethernet0
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml166
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/MainServiceTemplate.yaml240
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml320
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/MANIFEST.json19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.nested.heat.yaml165
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.vfmodule.heat.yaml158
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml267
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/MainServiceTemplate.yaml241
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nested2levelServiceTemplate.yaml175
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nestedServiceTemplate.yaml217
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/MANIFEST.json27
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/addOn.yml26
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/base.yml58
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested.yml65
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested2level.yml59
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml472
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/MainServiceTemplate.yaml241
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested2levelServiceTemplate.yaml217
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested3levelServiceTemplate.yaml175
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nestedServiceTemplate.yaml247
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/MANIFEST.json32
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/addOn.yml26
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/base.yml58
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested.yml65
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested2level.yml65
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested3level.yml59
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml79
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/MainServiceTemplate.yaml65
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml91
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/MANIFEST.json14
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/hot-nimbus-pcm_v0.4.yaml22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/nested-pcm_v0.1.yaml29
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml79
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/MainServiceTemplate.yaml72
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml91
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/hot-nimbus-pcm_v0.4.yaml23
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/nested-pcm_v0.1.yaml31
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/volume.yaml14
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml330
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/MainServiceTemplate.yaml240
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml291
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml205
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/MANIFEST.json26
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.env14
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.yaml82
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4_2.yaml79
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1.yaml138
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1_2.yaml110
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml161
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/MainServiceTemplate.yaml569
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml254
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/MANIFEST.json19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.nested.heat.yaml129
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.vfmodule.heat.yaml228
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/MANIFEST.json19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.nested.heat.yaml129
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.vfmodule.heat.yaml166
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml153
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/MainServiceTemplate.yaml246
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/dns_nested_01ServiceTemplate.yaml249
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/MANIFEST.json37
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.env8
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.yaml43
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.env21
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.yaml94
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_nested_01.yaml127
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/nimbus-willows-2.pem27
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml161
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml223
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml254
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml129
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml163
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml166
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/MainServiceTemplate.yaml195
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml320
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/MANIFEST.json19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.nested.heat.yaml165
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.vfmodule.heat.yaml105
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml137
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/MainServiceTemplate.yaml216
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml207
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/MANIFEST.json23
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.env14
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.yaml82
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4_2.yaml71
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/nested-pcm_v0.1.yaml114
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml137
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/MainServiceTemplate.yaml236
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml207
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/MANIFEST.json20
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.env14
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.yaml94
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/nested-pcm_v0.1.yaml114
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/expectedoutputfiles/MainServiceTemplate.yaml86
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/MANIFEST.json11
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/outputs.yaml48
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/expectedoutputfiles/MainServiceTemplate.yaml181
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.env6
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.yaml101
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/expectedoutputfiles/MainServiceTemplate.yaml197
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/MANIFEST.json12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/network_policy_chain.yaml117
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/expectedoutputfiles/MainServiceTemplate.yaml1308
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/MANIFEST.json21
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/nimbus-ethernet.sh0
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.env97
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.yml722
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/expectedoutputfiles/MainServiceTemplate.yaml219
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/MANIFEST.json17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.env4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.yaml135
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/expectedoutputfiles/MainServiceTemplate.yaml602
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/MANIFEST.json25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.env4
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.yaml411
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet0
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet-gw0
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/expectedoutputfiles/MainServiceTemplate.yaml95
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/MANIFEST.json12
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/sharedDefinitionOutParam.yaml45
134 files changed, 18094 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..9e0e6efecd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,236 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1_2:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ type: string
+ oam_net_name:
+ type: string
+ description: OAM network name
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ requirements:
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ security_group_name:
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ description: OAM network name
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ requirements:
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ 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/heat/nested/multi/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..a0063b174e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,240 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ oam_net_ips:
+ label: OAM network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: OAM network ips
+ entry_schema:
+ type: string
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ pcm_server_names:
+ label: PCRF CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PCRF CM instance
+ entry_schema:
+ type: string
+ pcm_image_name:
+ label: PCRF CM image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ cps_net_ips:
+ label: CPS network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS network ips
+ entry_schema:
+ type: string
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ pcm_volumes:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS Cluman Cinder Volume
+ entry_schema:
+ type: string
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_image_name:
+ get_input: pcm_image_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ oam_net_gw:
+ get_input: oam_net_gw
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ oam_net_ip:
+ get_input:
+ - oam_net_ips
+ - 0
+ oam_net_mask:
+ get_input: oam_net_mask
+ oam_net_name:
+ get_input: oam_net_name
+ server_pcm_004:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1_2
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1_2ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ server_pcm_003:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ groups:
+ hot-nimbus-pcm_v0.4_2:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4_2.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_004
+ - server_pcm_003
+ hot-nimbus-pcm_v0.4:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_002
+ - server_pcm_001 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644
index 0000000000..1b03021742
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
@@ -0,0 +1,207 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ label: CPS network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network ip
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ label: OAM network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ network:
+ get_input: oam_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ server_pcm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ network:
+ get_input: cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested-pcm_v0.1:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - pcm_port_1
+ - server_pcm
+ - pcm_port_0
+ outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: server_pcm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ capabilities:
+ endpoint_server_pcm:
+ - server_pcm
+ - endpoint
+ os_server_pcm:
+ - server_pcm
+ - os
+ host_server_pcm:
+ - server_pcm
+ - host
+ scalable_server_pcm:
+ - server_pcm
+ - scalable
+ binding_server_pcm:
+ - server_pcm
+ - binding
+ attachment_pcm_port_0:
+ - pcm_port_0
+ - attachment
+ attachment_pcm_port_1:
+ - pcm_port_1
+ - attachment
+ requirements:
+ link_pcm_port_0:
+ - pcm_port_0
+ - link
+ link_pcm_port_1:
+ - pcm_port_1
+ - link
+ local_storage_server_pcm:
+ - server_pcm
+ - local_storage \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml
new file mode 100644
index 0000000000..34d0c6d899
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1_2
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ pcm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ pcm_vol:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ label: CPS network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network ip
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ hidden: false
+ immutable: false
+ type: string
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ network:
+ get_input: oam_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ server_pcm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ network:
+ get_input: cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested-pcm_v0.1_2:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1_2.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - pcm_port_1
+ - server_pcm
+ - pcm_port_0
+ outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: server_pcm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1_2
+ capabilities:
+ endpoint_server_pcm:
+ - server_pcm
+ - endpoint
+ os_server_pcm:
+ - server_pcm
+ - os
+ host_server_pcm:
+ - server_pcm
+ - host
+ scalable_server_pcm:
+ - server_pcm
+ - scalable
+ binding_server_pcm:
+ - server_pcm
+ - binding
+ attachment_pcm_port_0:
+ - pcm_port_0
+ - attachment
+ attachment_pcm_port_1:
+ - pcm_port_1
+ - attachment
+ requirements:
+ link_pcm_port_0:
+ - pcm_port_0
+ - link
+ link_pcm_port_1:
+ - pcm_port_1
+ - link
+ local_storage_server_pcm:
+ - server_pcm
+ - local_storage \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/MANIFEST.json
new file mode 100644
index 0000000000..b32b92ca11
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/MANIFEST.json
@@ -0,0 +1,30 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },{
+ "file": "nested-pcm_v0.1.yaml",
+ "type": "HEAT"
+ },{
+ "file": "hot-nimbus-pcm_v0.4_2.yaml",
+ "type": "HEAT"
+ },{
+ "file": "nested-pcm_v0.1_2.yaml",
+ "type": "HEAT"
+ },
+ {
+ "file": "nimbus-ethernet",
+ "type": "OTHER"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.env
new file mode 100644
index 0000000000..78cc03e2ea
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.env
@@ -0,0 +1,14 @@
+parameters:
+ pcm_server_names: ZRDM1PCRF01PCM001
+ pcm_image_name: rhel2
+ pcm_flavor_name: cps
+ availabilityzone_name: nova
+ cps_net_name: int_pcrf_net_0
+ cps_net_ips: 172.26.16.113
+ cps_net_mask: 255.255.255.0
+ oam_net_name: oam_protected_net_0
+ oam_net_ips: 107.239.64.121
+ oam_net_gw: 107.239.64.1
+ oam_net_mask: 255.255.255.0
+ pcm_volumes: 249cb355-8fdf-4382-9c3c-a2ebe767d45b
+ security_group_name: nimbus_security_group
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.yaml
new file mode 100644
index 0000000000..f7d050790f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4.yaml
@@ -0,0 +1,82 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_names:
+ type: comma_delimited_list
+ label: PCRF CM server names
+ description: name of the PCRF CM instance
+ pcm_image_name:
+ type: string
+ label: PCRF CM image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ips:
+ type: comma_delimited_list
+ label: CPS network ips
+ description: CPS network ips
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ips:
+ type: comma_delimited_list
+ label: OAM network ips
+ description: OAM network ips
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_volumes:
+ type: comma_delimited_list
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ server_pcm_001:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+ oam_net_name: { get_param: oam_net_name }
+ oam_net_ip: { get_param: [oam_net_ips, 0] }
+ oam_net_mask: { get_param: oam_net_mask }
+ oam_net_gw: { get_param: oam_net_gw }
+
+ server_pcm_002:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ pcm_server_name: { get_param: [pcm_server_names, 0] }
+ pcm_image_name: { get_param: pcm_image_name }
+ pcm_flavor_name: { get_param: pcm_flavor_name }
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4_2.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4_2.yaml
new file mode 100644
index 0000000000..b59df84764
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/hot-nimbus-pcm_v0.4_2.yaml
@@ -0,0 +1,79 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_names:
+ type: comma_delimited_list
+ label: PCRF CM server names
+ description: name of the PCRF CM instance
+ pcm_image_name:
+ type: string
+ label: PCRF CM image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ips:
+ type: comma_delimited_list
+ label: CPS network ips
+ description: CPS network ips
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ips:
+ type: comma_delimited_list
+ label: OAM network ips
+ description: OAM network ips
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_volumes:
+ type: comma_delimited_list
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ server_pcm_003:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+
+ server_pcm_004:
+ type: nested-pcm_v0.1_2.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1.yaml
new file mode 100644
index 0000000000..109bf86d24
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1.yaml
@@ -0,0 +1,114 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ pcm_image_name:
+ type: string
+ label: image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ip:
+ type: string
+ label: CPS network ip
+ description: CPS network ip
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ip:
+ type: string
+ label: OAM network ip
+ description: OAM network ip
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_vol:
+ type: string
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ network:
+ type: net
+ script_init:
+ type: OS:INIT
+ server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+
+ server_pcm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: pcm_port_0}
+ - port: { get_resource: pcm_port_1}
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+
+ pcm_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: cps_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ pcm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_name }
+ fixed_ips:
+ - ip_address: { get_param: oam_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ #pcm_vol_attachment:
+ # type: OS:: Cinder::VolumeAttachment
+ # properties:
+ # volume_id: { get_param: pcm_vol }
+ # mountpoint: /dev/vdb
+ # instance_uuid: { get_resource: server_pcm }
+outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: { get_resource: server_pcm } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1_2.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1_2.yaml
new file mode 100644
index 0000000000..3f117a8410
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nested-pcm_v0.1_2.yaml
@@ -0,0 +1,120 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ pcm_image_name:
+ type: string
+ label: image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ip:
+ type: string
+ label: CPS network ip
+ description: CPS network ip
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_vol:
+ type: string
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ip:
+ type: string
+resources:
+ network:
+ type: OS::Heat::CloudConfig
+ properties:
+ cloud_config:
+ write_files:
+ - path: /etc/sysconfig/network-scripts/ifcfg-eth0
+ permissions: "0644"
+ content:
+ str_replace:
+ template: { get_file: "file:///nimbus-ethernet" }
+ params:
+ $dev: eth0
+ $ip: { get_param: cps_net_ip }
+ $netmask: { get_param: cps_net_mask }
+ runcmd:
+ - ifdown eth0 && ifup eth0
+ - ifdown eth1 && ifup eth1
+ script_init:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: ungrouped
+ server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+
+ server_pcm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: pcm_port_0}
+ - port: { get_resource: pcm_port_1}
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+
+ pcm_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: cps_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ pcm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_name }
+ fixed_ips:
+ - ip_address: { get_param: oam_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ #pcm_vol_attachment:
+ # type: OS:: Cinder::VolumeAttachment
+ # properties:
+ # volume_id: { get_param: pcm_vol }
+ # mountpoint: /dev/vdb
+ # instance_uuid: { get_resource: server_pcm }
+outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: { get_resource: server_pcm } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nimbus-ethernet b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nimbus-ethernet
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multi/inputs/nimbus-ethernet
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..1b1c4dd621
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,166 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+ indx:
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ requirements:
+ - local_storage_vnfci:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_mgmt_port:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ os_vnfci:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_mgmt_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_vnfci:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vnfci:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vnfci:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_boot_volume:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_vnfci:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_data_volume:
+ type: tosca.capabilities.Attachment
+ 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/heat/nested/multiple_resource_groups/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..ffddcce43c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,240 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ vf_module_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ num_instances:
+ hidden: false
+ immutable: false
+ type: float
+ description: number of instance of the VF_module
+ node_templates:
+ mvs_modules:
+ type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ vf_name:
+ get_input: vf_name
+ cloud_zone_id:
+ get_input: cloud_zone_id
+ vf_instance_num:
+ get_input: vf_instance_num
+ virtual_mgmt_ip_0:
+ get_input: virtual_mgmt_ip_0
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_mgmt_ip_0:
+ get_input: mvs_mgmt_ip_0
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ service_template_filter:
+ substitute_service_template: mvs.nested.heatServiceTemplate.yaml
+ count:
+ get_input: num_instances
+ mandatory: false
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_0
+ mgmt_net_id:
+ get_input: mgmt_net_id
+ vm_instance_num:
+ get_input: vm_instance_num
+ bootimage:
+ get_input: bootimage
+ sec_groups:
+ get_input: sec_groups
+ vf_component:
+ get_input: vf_component
+ mvs_modules_same_nested_heat_file_no_count:
+ type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ vf_name:
+ get_input: vf_name
+ cloud_zone_id:
+ get_input: cloud_zone_id
+ vf_instance_num:
+ get_input: vf_instance_num
+ virtual_mgmt_ip_0:
+ get_input: virtual_mgmt_ip_0
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_mgmt_ip_0:
+ get_input: mvs_mgmt_ip_0
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ service_template_filter:
+ substitute_service_template: mvs.nested.heatServiceTemplate.yaml
+ count: 1
+ mandatory: true
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_0
+ mgmt_net_id:
+ get_input: mgmt_net_id
+ vm_instance_num:
+ get_input: vm_instance_num
+ bootimage:
+ get_input: bootimage
+ sec_groups:
+ get_input: sec_groups
+ vf_component:
+ get_input: vf_component
+ groups:
+ mvs.vfmodule.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.vfmodule.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - mvs_modules
+ - mvs_modules_same_nested_heat_file_no_count \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
new file mode 100644
index 0000000000..315318d4f6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
@@ -0,0 +1,320 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: mvs.nested.heat
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.vnfci:
+ 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
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ indx:
+ hidden: false
+ immutable: false
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ node_templates:
+ boot_volume:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ image:
+ get_input: bootimage
+ size: 35*1024
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-boot-volume
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ vnfci:
+ type: org.openecomp.resource.vfc.nodes.heat.vnfci
+ properties:
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: boot_volume
+ relationship: tosca.relationships.AttachesTo
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: data_volume
+ relationship: tosca.relationships.AttachesTo
+ data_volume:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ size: 265*1024
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-data-volume
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ mgmt_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: sec_groups
+ fixed_ips:
+ - ip_address:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - get_input: mvs_mgmt_ip_0
+ allowed_address_pairs:
+ - ip_address:
+ get_input: virtual_mgmt_ip_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ network:
+ get_input: mgmt_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vnfci
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ mvs.nested.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.nested.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - boot_volume
+ - vnfci
+ - data_volume
+ - mgmt_port
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ capabilities:
+ os_vnfci:
+ - vnfci
+ - os
+ attachment_mgmt_port:
+ - mgmt_port
+ - attachment
+ endpoint_vnfci:
+ - vnfci
+ - endpoint
+ host_vnfci:
+ - vnfci
+ - host
+ binding_vnfci:
+ - vnfci
+ - binding
+ attachment_boot_volume:
+ - boot_volume
+ - attachment
+ scalable_vnfci:
+ - vnfci
+ - scalable
+ attachment_data_volume:
+ - data_volume
+ - attachment
+ requirements:
+ local_storage_vnfci:
+ - vnfci
+ - local_storage
+ link_mgmt_port:
+ - mgmt_port
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/MANIFEST.json
new file mode 100644
index 0000000000..c7729c8653
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/MANIFEST.json
@@ -0,0 +1,19 @@
+{
+ "name": "mvs.vfmodule.heat.yaml",
+ "description": "Metaswitch MVS (Metaview Server)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "mvs.vfmodule.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ },
+ {
+ "file": "mvs.nested.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.nested.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.nested.heat.yaml
new file mode 100644
index 0000000000..8ddc5c6488
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.nested.heat.yaml
@@ -0,0 +1,165 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ indx:
+ type: number
+ description: Index of the current instance
+
+resources:
+ mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ network_id: { get_param: mgmt_net_id }
+ security_groups: [{ get_param: sec_groups }]
+
+ fixed_ips:
+ - ip_address: { "Fn::Select" : [ { get_param: indx }, { get_param: [{ get_param: mvs_mgmt_ip_0 }] } ] }
+
+ allowed_address_pairs:
+ - ip_address: { get_param: virtual_mgmt_ip_0 }
+
+ boot_volume:
+ type: OS::Cinder::Volume
+ properties:
+ size: 35
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-boot-volume
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+
+ image: { get_param: bootimage }
+
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+
+ data_volume:
+ type: OS::Cinder::Volume
+ properties:
+ size: 265
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-data-volume
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+
+ vnfci:
+ type: OS::Nova::Server
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ block_device_mapping:
+ - device_name: vda
+ volume_id: { get_resource: boot_volume }
+ delete_on_termination: false
+ - device_name: vdb
+ volume_id: { get_resource: data_volume }
+ delete_on_termination: false
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: mgmt_port }
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.vfmodule.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.vfmodule.heat.yaml
new file mode 100644
index 0000000000..55c98053a4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/multiple_resource_groups/inputs/mvs.vfmodule.heat.yaml
@@ -0,0 +1,158 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ num_instances:
+ type: number
+ description: number of instance of the VF_module
+
+resources:
+ mvs_modules:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: num_instances }
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+
+ availability_zone_0: { get_param: availability_zone_0 }
+
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+
+ indx: "%index%"
+ mvs_modules_same_nested_heat_file_no_count:
+ type: OS::Heat::ResourceGroup
+ properties:
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+
+ availability_zone_0: { get_param: availability_zone_0 }
+
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+
+ indx: "%index%"
+ shouldnt_get_translated:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: num_instances }
+ resource_def:
+ type: OS::Nova::Server
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+
+ availability_zone_0: { get_param: availability_zone_0 }
+
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+
+ indx: "%index%" \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..e5cffd7233
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,267 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p2:
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+ net:
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ requirements:
+ - link_cmaui_port_2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_11_test_nested2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_22_test_nested2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_cmaui_test_nested2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_11_test_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_22_test_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested2level:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p2:
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+ net:
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ requirements:
+ - link_cmaui_port_11:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_22:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_11:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_22:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ 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/heat/nested/nested2levels/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..b619c99256
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,241 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ shared_security_group_id2:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ jsa_security_group1:
+ 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_cmaui_port_2
+ node: test_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cmaui_port_1
+ node: test_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ jsa_security_group2:
+ 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_cmaui_port_1
+ node: test_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ test_nested:
+ type: org.openecomp.resource.abstract.nodes.heat.nested
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nestedServiceTemplate.yaml
+ p2:
+ get_input: shared_security_group_id2
+ shared_security_group_id1:
+ get_input: shared_security_group_id1
+ groups:
+ addOn:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/addOn.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested
+ base:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/base.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - jsa_security_group1
+ - jsa_security_group2 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nested2levelServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nested2levelServiceTemplate.yaml
new file mode 100644
index 0000000000..e26b5c6c18
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nested2levelServiceTemplate.yaml
@@ -0,0 +1,175 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested2level
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.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
+ 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
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ description: cmaui_port_1
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ node_templates:
+ cmaui_port_11:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ - get_input: p2
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_port_22:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ 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
+ name:
+ get_input:
+ - cmaui_names
+ - 0
+ groups:
+ nested2level:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested2level.yml
+ description: cmaui server template for vMMSC
+ members:
+ - cmaui_port_11
+ - cmaui_port_22
+ - server_cmaui
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested2level
+ capabilities:
+ host_server_cmaui:
+ - server_cmaui
+ - host
+ os_server_cmaui:
+ - server_cmaui
+ - os
+ attachment_cmaui_port_11:
+ - cmaui_port_11
+ - attachment
+ attachment_cmaui_port_22:
+ - cmaui_port_22
+ - attachment
+ endpoint_server_cmaui:
+ - server_cmaui
+ - endpoint
+ binding_server_cmaui:
+ - server_cmaui
+ - binding
+ scalable_server_cmaui:
+ - server_cmaui
+ - scalable
+ requirements:
+ local_storage_server_cmaui:
+ - server_cmaui
+ - local_storage
+ link_cmaui_port_11:
+ - cmaui_port_11
+ - link
+ link_cmaui_port_22:
+ - cmaui_port_22
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nestedServiceTemplate.yaml
new file mode 100644
index 0000000000..8001ba9d7d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/expectedoutputfiles/nestedServiceTemplate.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.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
+ 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
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ description: cmaui_port_1
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ node_templates:
+ cmaui_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ test_nested2:
+ type: org.openecomp.resource.abstract.nodes.heat.nested2level
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested2levelServiceTemplate.yaml
+ p2:
+ get_input: p2
+ shared_security_group_id1:
+ get_input: shared_security_group_id1
+ 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
+ name:
+ get_input:
+ - cmaui_names
+ - 0
+ cmaui_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ - get_input: p2
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested.yml
+ description: cmaui server template for vMMSC
+ members:
+ - cmaui_port_2
+ - test_nested2
+ - server_cmaui
+ - cmaui_port_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested
+ capabilities:
+ os_server_cmaui:
+ - server_cmaui
+ - os
+ scalable_server_cmaui:
+ - server_cmaui
+ - scalable
+ host_server_cmaui:
+ - server_cmaui
+ - host
+ endpoint_server_cmaui:
+ - server_cmaui
+ - endpoint
+ attachment_cmaui_port_11_test_nested2:
+ - test_nested2
+ - attachment_cmaui_port_11
+ binding_server_cmaui:
+ - server_cmaui
+ - binding
+ attachment_cmaui_port_2:
+ - cmaui_port_2
+ - attachment
+ endpoint_server_cmaui_test_nested2:
+ - test_nested2
+ - endpoint_server_cmaui
+ host_server_cmaui_test_nested2:
+ - test_nested2
+ - host_server_cmaui
+ binding_server_cmaui_test_nested2:
+ - test_nested2
+ - binding_server_cmaui
+ scalable_server_cmaui_test_nested2:
+ - test_nested2
+ - scalable_server_cmaui
+ os_server_cmaui_test_nested2:
+ - test_nested2
+ - os_server_cmaui
+ attachment_cmaui_port_22_test_nested2:
+ - test_nested2
+ - attachment_cmaui_port_22
+ attachment_cmaui_port_1:
+ - cmaui_port_1
+ - attachment
+ requirements:
+ local_storage_server_cmaui_test_nested2:
+ - test_nested2
+ - local_storage_server_cmaui
+ local_storage_server_cmaui:
+ - server_cmaui
+ - local_storage
+ link_cmaui_port_22_test_nested2:
+ - test_nested2
+ - link_cmaui_port_22
+ link_cmaui_port_2:
+ - cmaui_port_2
+ - link
+ link_cmaui_port_11_test_nested2:
+ - test_nested2
+ - link_cmaui_port_11
+ link_cmaui_port_1:
+ - cmaui_port_1
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/MANIFEST.json
new file mode 100644
index 0000000000..992097af43
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/MANIFEST.json
@@ -0,0 +1,27 @@
+{
+ "name": "vMME_Small",
+ "description": "HOT template to create 2 cinder volume attachment",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "base.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested2level.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "addOn.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/addOn.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/addOn.yml
new file mode 100644
index 0000000000..0e7619a478
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/addOn.yml
@@ -0,0 +1,26 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ shared_security_group_id1:
+ type: string
+ description: network name of jsa log network
+ shared_security_group_id2:
+ type: string
+ description: network name of jsa log network
+ jsa_net_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ test_nested:
+ type: nested.yml
+ properties:
+ shared_security_group_id1: { get_param: shared_security_group_id1}
+ p2: { get_param: shared_security_group_id2}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/base.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/base.yml
new file mode 100644
index 0000000000..9167ffbafd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/base.yml
@@ -0,0 +1,58 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_net_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ jsa_security_group1:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"}
+ ]
+
+ jsa_security_group2:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"}
+ ]
+outputs:
+ shared_security_group_id1:
+ value: {get_resource: jsa_security_group1}
+
+ shared_security_group_id2:
+ value: {get_resource: jsa_security_group2}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested.yml
new file mode 100644
index 0000000000..b202fef7b0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested.yml
@@ -0,0 +1,65 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ net:
+ type: string
+ description: UID of OAM network
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+
+resources:
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}, {get_param: p2}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}]
+ replacement_policy: AUTO
+
+ server_cmaui:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+ - port: { get_resource: cmaui_port_2 }
+
+ test_nested2:
+ type: nested2level.yml
+ properties:
+ shared_security_group_id1: { get_param: shared_security_group_id1}
+ p2: { get_param: p2} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested2level.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested2level.yml
new file mode 100644
index 0000000000..6a123d1641
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested2levels/inputs/nested2level.yml
@@ -0,0 +1,59 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ net:
+ type: string
+ description: UID of OAM network
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+
+resources:
+
+ cmaui_port_11:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}, {get_param: p2}]
+ replacement_policy: AUTO
+
+ cmaui_port_22:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}]
+ replacement_policy: AUTO
+
+ server_cmaui:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_11 }
+ - port: { get_resource: cmaui_port_22 } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..9aaa8caf18
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,472 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p2:
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+ net:
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ requirements:
+ - link_cmaui_port_2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_11_test_nested2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_22_test_nested2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_11_test_nested3_test_nested2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_22_test_nested3_test_nested2:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_cmaui_test_nested3_test_nested2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui_test_nested2:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_cmaui_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested3_test_nested2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested3_test_nested2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested3_test_nested2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_22_test_nested3_test_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_11_test_nested3_test_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_11_test_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested3_test_nested2:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested2:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested2:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested2:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_22_test_nested2:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested3_test_nested2:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested3level:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p2:
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+ net:
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ requirements:
+ - link_cmaui_port_11:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_22:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_11:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_22:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested2level:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ cmaui_names:
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ p2:
+ type: string
+ description: UID of OAM network
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ availability_zone_0:
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+ net:
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ requirements:
+ - link_cmaui_port_11:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_22:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_11_test_nested3:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_cmaui_port_22_test_nested3:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_cmaui_test_nested3:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - local_storage_server_cmaui:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ os_server_cmaui:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_22_test_nested3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_11_test_nested3:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_11:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_cmaui_port_22:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_cmaui_test_nested3:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_cmaui_test_nested3:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_cmaui_test_nested3:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_cmaui_test_nested3:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_cmaui_test_nested3:
+ type: tosca.capabilities.Scalable
+ 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/heat/nested/nested3levels/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..b619c99256
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,241 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ shared_security_group_id2:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ node_templates:
+ jsa_security_group1:
+ 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_cmaui_port_2
+ node: test_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_cmaui_port_1
+ node: test_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ jsa_security_group2:
+ 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_cmaui_port_1
+ node: test_nested
+ relationship: org.openecomp.relationships.AttachesTo
+ test_nested:
+ type: org.openecomp.resource.abstract.nodes.heat.nested
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nestedServiceTemplate.yaml
+ p2:
+ get_input: shared_security_group_id2
+ shared_security_group_id1:
+ get_input: shared_security_group_id1
+ groups:
+ addOn:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/addOn.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - test_nested
+ base:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/base.yml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - jsa_security_group1
+ - jsa_security_group2 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested2levelServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested2levelServiceTemplate.yaml
new file mode 100644
index 0000000000..2c64802a2b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested2levelServiceTemplate.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested2level
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.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
+ 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
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ description: cmaui_port_1
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ node_templates:
+ cmaui_port_11:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ - get_input: p2
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_port_22:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ test_nested3:
+ type: org.openecomp.resource.abstract.nodes.heat.nested3level
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested3levelServiceTemplate.yaml
+ p2:
+ get_input: p2
+ shared_security_group_id1:
+ get_input: shared_security_group_id1
+ 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
+ name:
+ get_input:
+ - cmaui_names
+ - 0
+ groups:
+ nested2level:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested2level.yml
+ description: cmaui server template for vMMSC
+ members:
+ - cmaui_port_11
+ - cmaui_port_22
+ - test_nested3
+ - server_cmaui
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested2level
+ capabilities:
+ os_server_cmaui:
+ - server_cmaui
+ - os
+ attachment_cmaui_port_22_test_nested3:
+ - test_nested3
+ - attachment_cmaui_port_22
+ attachment_cmaui_port_11_test_nested3:
+ - test_nested3
+ - attachment_cmaui_port_11
+ scalable_server_cmaui:
+ - server_cmaui
+ - scalable
+ host_server_cmaui:
+ - server_cmaui
+ - host
+ attachment_cmaui_port_11:
+ - cmaui_port_11
+ - attachment
+ attachment_cmaui_port_22:
+ - cmaui_port_22
+ - attachment
+ host_server_cmaui_test_nested3:
+ - test_nested3
+ - host_server_cmaui
+ endpoint_server_cmaui:
+ - server_cmaui
+ - endpoint
+ binding_server_cmaui:
+ - server_cmaui
+ - binding
+ endpoint_server_cmaui_test_nested3:
+ - test_nested3
+ - endpoint_server_cmaui
+ os_server_cmaui_test_nested3:
+ - test_nested3
+ - os_server_cmaui
+ binding_server_cmaui_test_nested3:
+ - test_nested3
+ - binding_server_cmaui
+ scalable_server_cmaui_test_nested3:
+ - test_nested3
+ - scalable_server_cmaui
+ requirements:
+ local_storage_server_cmaui_test_nested3:
+ - test_nested3
+ - local_storage_server_cmaui
+ local_storage_server_cmaui:
+ - server_cmaui
+ - local_storage
+ link_cmaui_port_11:
+ - cmaui_port_11
+ - link
+ link_cmaui_port_22:
+ - cmaui_port_22
+ - link
+ link_cmaui_port_22_test_nested3:
+ - test_nested3
+ - link_cmaui_port_22
+ link_cmaui_port_11_test_nested3:
+ - test_nested3
+ - link_cmaui_port_11 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested3levelServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested3levelServiceTemplate.yaml
new file mode 100644
index 0000000000..d270626fa7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nested3levelServiceTemplate.yaml
@@ -0,0 +1,175 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested3level
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.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
+ 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
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ description: cmaui_port_1
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ node_templates:
+ cmaui_port_11:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ - get_input: p2
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ cmaui_port_22:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ 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
+ name:
+ get_input:
+ - cmaui_names
+ - 0
+ groups:
+ nested3level:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested3level.yml
+ description: cmaui server template for vMMSC
+ members:
+ - cmaui_port_11
+ - cmaui_port_22
+ - server_cmaui
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested3level
+ capabilities:
+ host_server_cmaui:
+ - server_cmaui
+ - host
+ os_server_cmaui:
+ - server_cmaui
+ - os
+ attachment_cmaui_port_11:
+ - cmaui_port_11
+ - attachment
+ attachment_cmaui_port_22:
+ - cmaui_port_22
+ - attachment
+ endpoint_server_cmaui:
+ - server_cmaui
+ - endpoint
+ binding_server_cmaui:
+ - server_cmaui
+ - binding
+ scalable_server_cmaui:
+ - server_cmaui
+ - scalable
+ requirements:
+ local_storage_server_cmaui:
+ - server_cmaui
+ - local_storage
+ link_cmaui_port_11:
+ - cmaui_port_11
+ - link
+ link_cmaui_port_22:
+ - cmaui_port_22
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nestedServiceTemplate.yaml
new file mode 100644
index 0000000000..d78a252f4f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/expectedoutputfiles/nestedServiceTemplate.yaml
@@ -0,0 +1,247 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.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
+ 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
+ availability_zone_0:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ cmaui_oam_ips:
+ hidden: false
+ immutable: false
+ type: string
+ description: cmaui_port_1
+ net:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ shared_security_group_id1:
+ hidden: false
+ immutable: false
+ type: string
+ description: UID of OAM network
+ node_templates:
+ cmaui_port_2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ test_nested2:
+ type: org.openecomp.resource.abstract.nodes.heat.nested2level
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested2levelServiceTemplate.yaml
+ p2:
+ get_input: p2
+ shared_security_group_id1:
+ get_input: shared_security_group_id1
+ 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
+ name:
+ get_input:
+ - cmaui_names
+ - 0
+ cmaui_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ replacement_policy: AUTO
+ security_groups:
+ - get_input: shared_security_group_id1
+ - get_input: p2
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - cmaui_oam_ips
+ - 0
+ network:
+ get_input: net
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_cmaui
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested.yml
+ description: cmaui server template for vMMSC
+ members:
+ - cmaui_port_2
+ - test_nested2
+ - server_cmaui
+ - cmaui_port_1
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested
+ capabilities:
+ os_server_cmaui:
+ - server_cmaui
+ - os
+ binding_server_cmaui_test_nested3_test_nested2:
+ - test_nested2
+ - binding_server_cmaui_test_nested3
+ scalable_server_cmaui_test_nested3_test_nested2:
+ - test_nested2
+ - scalable_server_cmaui_test_nested3
+ host_server_cmaui_test_nested3_test_nested2:
+ - test_nested2
+ - host_server_cmaui_test_nested3
+ scalable_server_cmaui:
+ - server_cmaui
+ - scalable
+ attachment_cmaui_port_22_test_nested3_test_nested2:
+ - test_nested2
+ - attachment_cmaui_port_22_test_nested3
+ host_server_cmaui:
+ - server_cmaui
+ - host
+ attachment_cmaui_port_11_test_nested3_test_nested2:
+ - test_nested2
+ - attachment_cmaui_port_11_test_nested3
+ endpoint_server_cmaui:
+ - server_cmaui
+ - endpoint
+ attachment_cmaui_port_11_test_nested2:
+ - test_nested2
+ - attachment_cmaui_port_11
+ binding_server_cmaui:
+ - server_cmaui
+ - binding
+ attachment_cmaui_port_2:
+ - cmaui_port_2
+ - attachment
+ endpoint_server_cmaui_test_nested2:
+ - test_nested2
+ - endpoint_server_cmaui
+ endpoint_server_cmaui_test_nested3_test_nested2:
+ - test_nested2
+ - endpoint_server_cmaui_test_nested3
+ scalable_server_cmaui_test_nested2:
+ - test_nested2
+ - scalable_server_cmaui
+ host_server_cmaui_test_nested2:
+ - test_nested2
+ - host_server_cmaui
+ binding_server_cmaui_test_nested2:
+ - test_nested2
+ - binding_server_cmaui
+ os_server_cmaui_test_nested2:
+ - test_nested2
+ - os_server_cmaui
+ attachment_cmaui_port_22_test_nested2:
+ - test_nested2
+ - attachment_cmaui_port_22
+ os_server_cmaui_test_nested3_test_nested2:
+ - test_nested2
+ - os_server_cmaui_test_nested3
+ attachment_cmaui_port_1:
+ - cmaui_port_1
+ - attachment
+ requirements:
+ local_storage_server_cmaui_test_nested2:
+ - test_nested2
+ - local_storage_server_cmaui
+ local_storage_server_cmaui:
+ - server_cmaui
+ - local_storage
+ link_cmaui_port_11_test_nested3_test_nested2:
+ - test_nested2
+ - link_cmaui_port_11_test_nested3
+ link_cmaui_port_22_test_nested2:
+ - test_nested2
+ - link_cmaui_port_22
+ link_cmaui_port_22_test_nested3_test_nested2:
+ - test_nested2
+ - link_cmaui_port_22_test_nested3
+ local_storage_server_cmaui_test_nested3_test_nested2:
+ - test_nested2
+ - local_storage_server_cmaui_test_nested3
+ link_cmaui_port_2:
+ - cmaui_port_2
+ - link
+ link_cmaui_port_11_test_nested2:
+ - test_nested2
+ - link_cmaui_port_11
+ link_cmaui_port_1:
+ - cmaui_port_1
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/MANIFEST.json
new file mode 100644
index 0000000000..ea06fcc95a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/MANIFEST.json
@@ -0,0 +1,32 @@
+{
+ "name": "vMME_Small",
+ "description": "HOT template to create 2 cinder volume attachment",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "base.yml",
+ "type": "HEAT",
+ "isBase": "true"
+ },
+ {
+ "file": "nested.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested2level.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "nested3level.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "addOn.yml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/addOn.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/addOn.yml
new file mode 100644
index 0000000000..0e7619a478
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/addOn.yml
@@ -0,0 +1,26 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ shared_security_group_id1:
+ type: string
+ description: network name of jsa log network
+ shared_security_group_id2:
+ type: string
+ description: network name of jsa log network
+ jsa_net_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ test_nested:
+ type: nested.yml
+ properties:
+ shared_security_group_id1: { get_param: shared_security_group_id1}
+ p2: { get_param: shared_security_group_id2}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/base.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/base.yml
new file mode 100644
index 0000000000..9167ffbafd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/base.yml
@@ -0,0 +1,58 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ jsa_net_name:
+ type: string
+ description: network name of jsa log network
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ jsa_security_group1:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"}
+ ]
+
+ jsa_security_group2:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: ems security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": egress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": "::/0"},
+ {"direction": ingress, "ethertype": IPv6, "protocol": icmp, "remote_ip_prefix": "::/0"}
+ ]
+outputs:
+ shared_security_group_id1:
+ value: {get_resource: jsa_security_group1}
+
+ shared_security_group_id2:
+ value: {get_resource: jsa_security_group2}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested.yml
new file mode 100644
index 0000000000..b202fef7b0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested.yml
@@ -0,0 +1,65 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ net:
+ type: string
+ description: UID of OAM network
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+
+resources:
+
+ cmaui_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}, {get_param: p2}]
+ replacement_policy: AUTO
+
+ cmaui_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}]
+ replacement_policy: AUTO
+
+ server_cmaui:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_1 }
+ - port: { get_resource: cmaui_port_2 }
+
+ test_nested2:
+ type: nested2level.yml
+ properties:
+ shared_security_group_id1: { get_param: shared_security_group_id1}
+ p2: { get_param: p2} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested2level.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested2level.yml
new file mode 100644
index 0000000000..14c137a884
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested2level.yml
@@ -0,0 +1,65 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ net:
+ type: string
+ description: UID of OAM network
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+
+resources:
+
+ cmaui_port_11:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}, {get_param: p2}]
+ replacement_policy: AUTO
+
+ cmaui_port_22:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}]
+ replacement_policy: AUTO
+
+ server_cmaui:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_11 }
+ - port: { get_resource: cmaui_port_22 }
+
+ test_nested3:
+ type: nested3level.yml
+ properties:
+ shared_security_group_id1: { get_param: shared_security_group_id1}
+ p2: { get_param: p2} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested3level.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested3level.yml
new file mode 100644
index 0000000000..6a123d1641
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nested3levels/inputs/nested3level.yml
@@ -0,0 +1,59 @@
+heat_template_version: 2013-05-23
+
+description: cmaui server template for vMMSC
+
+parameters:
+ shared_security_group_id1:
+ type: string
+ description: UID of OAM network
+ p2:
+ type: string
+ description: UID of OAM network
+ net:
+ type: string
+ description: UID of OAM network
+ cmaui_names:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ availability_zone_0:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+ cmaui_oam_ips:
+ type: string
+ description: cmaui_port_1
+
+resources:
+
+ cmaui_port_11:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}, {get_param: p2}]
+ replacement_policy: AUTO
+
+ cmaui_port_22:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net }
+ fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
+ security_groups: [{get_param: shared_security_group_id1}]
+ replacement_policy: AUTO
+
+ server_cmaui:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [cmaui_names, 0]}
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availability_zone_0 }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_11 }
+ - port: { get_resource: cmaui_port_22 } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..ef081a9bec
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,79 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ nova_image_name:
+ type: string
+ description: PCRF CM server name
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ nove_001_vol_property:
+ type: string
+ description: PCRF CM server name
+ requirements:
+ - local_storage_nova_001:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ scalable_nova_001:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_nova_001:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_nova_001:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_nova_001:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_nova_001:
+ type: tosca.capabilities.network.Bindable
+ 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/heat/nested/nestedvolumelocal/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..136eb6309a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,65 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ not_null:
+ hidden: false
+ immutable: false
+ type: string
+ node_templates:
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ nove_001_vol_property: nove_001_vol
+ requirements:
+ - local_storage_nova_001:
+ capability: tosca.capabilities.Attachment
+ node: nove_001_vol
+ relationship: tosca.relationships.AttachesTo
+ nove_001_vol:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties: {
+ }
+ groups:
+ hot-nimbus-pcm_v0.4:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_001
+ - nove_001_vol \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644
index 0000000000..1b9c34f1da
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
@@ -0,0 +1,91 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.nova:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ nova_image_name:
+ label: nova_001 image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ nove_001_vol_property:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ node_templates:
+ nova_001:
+ type: org.openecomp.resource.vfc.nodes.heat.nova
+ properties:
+ image:
+ get_input: nova_image_name
+ groups:
+ nested-pcm_v0.1:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - nova_001
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ capabilities:
+ scalable_nova_001:
+ - nova_001
+ - scalable
+ host_nova_001:
+ - nova_001
+ - host
+ endpoint_nova_001:
+ - nova_001
+ - endpoint
+ os_nova_001:
+ - nova_001
+ - os
+ binding_nova_001:
+ - nova_001
+ - binding
+ requirements:
+ local_storage_nova_001:
+ - nova_001
+ - local_storage \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/MANIFEST.json
new file mode 100644
index 0000000000..44c5652ed6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/MANIFEST.json
@@ -0,0 +1,14 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.yaml",
+ "type": "HEAT"
+ },{
+ "file": "nested-pcm_v0.1.yaml",
+ "type": "HEAT"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/hot-nimbus-pcm_v0.4.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/hot-nimbus-pcm_v0.4.yaml
new file mode 100644
index 0000000000..93dd4470b8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/hot-nimbus-pcm_v0.4.yaml
@@ -0,0 +1,22 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ not_null:
+ type: string
+
+
+
+resources:
+ server_pcm_001:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ nove_001_vol_property: { get_resource: nove_001_vol }
+
+ nove_001_vol:
+ type: OS::Cinder::Volume
+ properties:
+ not_null: not_null
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/nested-pcm_v0.1.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/nested-pcm_v0.1.yaml
new file mode 100644
index 0000000000..d444a691ff
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumelocal/inputs/nested-pcm_v0.1.yaml
@@ -0,0 +1,29 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ nove_001_vol_property:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ nova_image_name:
+ type: string
+ label: nova_001 image name
+ description: PCRF CM server name
+
+resources:
+ nova_001:
+ type: OS::Nova::Server
+ properties:
+ not_null: not_null
+ image: {get_param: nova_image_name}
+ nove_001_vol_attach:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ volume_id: {get_param: nove_001_vol_property}
+ instance_uuid: {get_resource: nova_001}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..5edf602a57
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,79 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ nova_image_name:
+ type: string
+ description: nova image name
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ nove_001_vol_property:
+ type: string
+ description: volume name
+ requirements:
+ - local_storage_nova_001:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ scalable_nova_001:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_nova_001:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_nova_001:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_nova_001:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_nova_001:
+ type: tosca.capabilities.network.Bindable
+ 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/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..30e792209b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,72 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ not_null:
+ hidden: false
+ immutable: false
+ type: string
+ nove_001_vol:
+ label: volume
+ hidden: false
+ immutable: false
+ type: string
+ description: volume name
+ node_templates:
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ nove_001_vol_property:
+ get_input: nove_001_vol
+ nove_001_vol:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties: {
+ }
+ groups:
+ volume:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/volume.yaml
+ members:
+ - nove_001_vol
+ hot-nimbus-pcm_v0.4:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_001 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644
index 0000000000..3f03905588
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
@@ -0,0 +1,91 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.nova:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ nova_image_name:
+ label: volume
+ hidden: false
+ immutable: false
+ type: string
+ description: nova image name
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ nove_001_vol_property:
+ label: volume
+ hidden: false
+ immutable: false
+ type: string
+ description: volume name
+ node_templates:
+ nova_001:
+ type: org.openecomp.resource.vfc.nodes.heat.nova
+ properties:
+ image:
+ get_input: nova_image_name
+ groups:
+ nested-pcm_v0.1:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - nova_001
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ capabilities:
+ scalable_nova_001:
+ - nova_001
+ - scalable
+ host_nova_001:
+ - nova_001
+ - host
+ endpoint_nova_001:
+ - nova_001
+ - endpoint
+ os_nova_001:
+ - nova_001
+ - os
+ binding_nova_001:
+ - nova_001
+ - binding
+ requirements:
+ local_storage_nova_001:
+ - nova_001
+ - local_storage \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/MANIFEST.json
new file mode 100644
index 0000000000..63b14401c8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.yaml",
+ "type": "HEAT"
+ },{
+ "file": "nested-pcm_v0.1.yaml",
+ "type": "HEAT"
+ },{
+ "file": "volume.yaml",
+ "type": "HEAT_VOL"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/hot-nimbus-pcm_v0.4.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/hot-nimbus-pcm_v0.4.yaml
new file mode 100644
index 0000000000..f6cfa047ef
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/hot-nimbus-pcm_v0.4.yaml
@@ -0,0 +1,23 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ not_null:
+ type: string
+
+ nove_001_vol:
+ type: string
+ label: volume
+ description: volume name
+
+
+
+resources:
+ server_pcm_001:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ nove_001_vol_property: { get_param: nove_001_vol }
+
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/nested-pcm_v0.1.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/nested-pcm_v0.1.yaml
new file mode 100644
index 0000000000..b8ab56319a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/nested-pcm_v0.1.yaml
@@ -0,0 +1,31 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+
+ nove_001_vol_property:
+ type: string
+ label: volume
+ description: volume name
+
+ nova_image_name:
+ type: string
+ label: volume
+ description: nova image name
+
+resources:
+ nova_001:
+ type: OS::Nova::Server
+ properties:
+ not_null: not_null
+ image: {get_param: nova_image_name}
+ nove_001_vol_attach:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ volume_id: {get_param: nove_001_vol_property}
+ instance_uuid: {get_resource: nova_001}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/volume.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/volume.yaml
new file mode 100644
index 0000000000..dbb3859b37
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/nestedvolumeseperatefile/inputs/volume.yaml
@@ -0,0 +1,14 @@
+heat_template_version: 2013-05-23
+
+parameters:
+ not_null:
+ type: number
+ label: not_number
+
+
+resources:
+ nove_001_vol:
+ type: OS::Cinder::Volume
+ properties:
+ not_null: not_null
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..2dee4a9971
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,330 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1_2:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ type: string
+ oam_net_name:
+ type: string
+ description: OAM network name
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ requirements:
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ cps_net_ips:
+ type: string
+ description: CPS network ip
+ security_group_name:
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ pcm_volumes:
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ description: OAM network name
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ requirements:
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_1_server_pcm_005:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_pcm_server_pcm_005:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0_server_pcm_005:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm_server_pcm_005:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm_server_pcm_005:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm_server_pcm_005:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm_server_pcm_005:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_server_pcm_server_pcm_005:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_network_server_pcm_005:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_network:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_network:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0_server_pcm_005:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ link_network_server_pcm_005:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1_server_pcm_005:
+ type: tosca.capabilities.Attachment
+ 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/heat/nested/recursive/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..a0063b174e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,240 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ oam_net_ips:
+ label: OAM network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: OAM network ips
+ entry_schema:
+ type: string
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ pcm_server_names:
+ label: PCRF CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PCRF CM instance
+ entry_schema:
+ type: string
+ pcm_image_name:
+ label: PCRF CM image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ cps_net_ips:
+ label: CPS network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS network ips
+ entry_schema:
+ type: string
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ pcm_volumes:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS Cluman Cinder Volume
+ entry_schema:
+ type: string
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_image_name:
+ get_input: pcm_image_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ oam_net_gw:
+ get_input: oam_net_gw
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ oam_net_ip:
+ get_input:
+ - oam_net_ips
+ - 0
+ oam_net_mask:
+ get_input: oam_net_mask
+ oam_net_name:
+ get_input: oam_net_name
+ server_pcm_004:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1_2
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1_2ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ server_pcm_003:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ groups:
+ hot-nimbus-pcm_v0.4_2:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4_2.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_004
+ - server_pcm_003
+ hot-nimbus-pcm_v0.4:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_002
+ - server_pcm_001 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644
index 0000000000..39fb736465
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
@@ -0,0 +1,291 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ cps_net_ips:
+ label: CPS network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network ip
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ label: CPS network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network ip
+ pcm_volumes:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ label: OAM network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ network:
+ get_input: oam_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ server_pcm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ server_pcm_005:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1_2
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1_2ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ network:
+ get_input: cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ network:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ network_name:
+ get_input: cps_net_name
+ groups:
+ nested-pcm_v0.1:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - pcm_port_1
+ - server_pcm
+ - server_pcm_005
+ - pcm_port_0
+ - network
+ outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: server_pcm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ capabilities:
+ endpoint_server_pcm:
+ - server_pcm
+ - endpoint
+ host_server_pcm:
+ - server_pcm
+ - host
+ host_server_pcm_server_pcm_005:
+ - server_pcm_005
+ - host_server_pcm
+ os_server_pcm_server_pcm_005:
+ - server_pcm_005
+ - os_server_pcm
+ scalable_server_pcm_server_pcm_005:
+ - server_pcm_005
+ - scalable_server_pcm
+ binding_server_pcm_server_pcm_005:
+ - server_pcm_005
+ - binding_server_pcm
+ endpoint_server_pcm_server_pcm_005:
+ - server_pcm_005
+ - endpoint_server_pcm
+ attachment_network_server_pcm_005:
+ - server_pcm_005
+ - attachment_network
+ attachment_network:
+ - network
+ - attachment
+ binding_server_pcm:
+ - server_pcm
+ - binding
+ link_network:
+ - network
+ - link
+ attachment_pcm_port_0_server_pcm_005:
+ - server_pcm_005
+ - attachment_pcm_port_0
+ os_server_pcm:
+ - server_pcm
+ - os
+ link_network_server_pcm_005:
+ - server_pcm_005
+ - link_network
+ scalable_server_pcm:
+ - server_pcm
+ - scalable
+ attachment_pcm_port_0:
+ - pcm_port_0
+ - attachment
+ attachment_pcm_port_1:
+ - pcm_port_1
+ - attachment
+ attachment_pcm_port_1_server_pcm_005:
+ - server_pcm_005
+ - attachment_pcm_port_1
+ requirements:
+ link_pcm_port_0:
+ - pcm_port_0
+ - link
+ link_pcm_port_1:
+ - pcm_port_1
+ - link
+ link_pcm_port_1_server_pcm_005:
+ - server_pcm_005
+ - link_pcm_port_1
+ link_pcm_port_0_server_pcm_005:
+ - server_pcm_005
+ - link_pcm_port_0
+ local_storage_server_pcm:
+ - server_pcm
+ - local_storage
+ local_storage_server_pcm_server_pcm_005:
+ - server_pcm_005
+ - local_storage_server_pcm \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml
new file mode 100644
index 0000000000..a80a5811b1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/expectedoutputfiles/nested-pcm_v0.1_2ServiceTemplate.yaml
@@ -0,0 +1,205 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1_2
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ pcm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ pcm_vol:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ label: CPS network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network ip
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ hidden: false
+ immutable: false
+ type: string
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ network:
+ get_input: oam_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ server_pcm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ network:
+ get_input: cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ network:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ network_name:
+ get_input: cps_net_name
+ groups:
+ nested-pcm_v0.1_2:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1_2.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - pcm_port_1
+ - server_pcm
+ - pcm_port_0
+ - network
+ outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: server_pcm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1_2
+ capabilities:
+ endpoint_server_pcm:
+ - server_pcm
+ - endpoint
+ link_network:
+ - network
+ - link
+ os_server_pcm:
+ - server_pcm
+ - os
+ host_server_pcm:
+ - server_pcm
+ - host
+ scalable_server_pcm:
+ - server_pcm
+ - scalable
+ attachment_network:
+ - network
+ - attachment
+ binding_server_pcm:
+ - server_pcm
+ - binding
+ attachment_pcm_port_0:
+ - pcm_port_0
+ - attachment
+ attachment_pcm_port_1:
+ - pcm_port_1
+ - attachment
+ requirements:
+ link_pcm_port_0:
+ - pcm_port_0
+ - link
+ link_pcm_port_1:
+ - pcm_port_1
+ - link
+ local_storage_server_pcm:
+ - server_pcm
+ - local_storage \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/MANIFEST.json
new file mode 100644
index 0000000000..b4a1b43a1e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/MANIFEST.json
@@ -0,0 +1,26 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },{
+ "file": "nested-pcm_v0.1.yaml",
+ "type": "HEAT"
+ },{
+ "file": "hot-nimbus-pcm_v0.4_2.yaml",
+ "type": "HEAT"
+ },{
+ "file": "nested-pcm_v0.1_2.yaml",
+ "type": "HEAT"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.env
new file mode 100644
index 0000000000..78cc03e2ea
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.env
@@ -0,0 +1,14 @@
+parameters:
+ pcm_server_names: ZRDM1PCRF01PCM001
+ pcm_image_name: rhel2
+ pcm_flavor_name: cps
+ availabilityzone_name: nova
+ cps_net_name: int_pcrf_net_0
+ cps_net_ips: 172.26.16.113
+ cps_net_mask: 255.255.255.0
+ oam_net_name: oam_protected_net_0
+ oam_net_ips: 107.239.64.121
+ oam_net_gw: 107.239.64.1
+ oam_net_mask: 255.255.255.0
+ pcm_volumes: 249cb355-8fdf-4382-9c3c-a2ebe767d45b
+ security_group_name: nimbus_security_group
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.yaml
new file mode 100644
index 0000000000..f7d050790f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4.yaml
@@ -0,0 +1,82 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_names:
+ type: comma_delimited_list
+ label: PCRF CM server names
+ description: name of the PCRF CM instance
+ pcm_image_name:
+ type: string
+ label: PCRF CM image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ips:
+ type: comma_delimited_list
+ label: CPS network ips
+ description: CPS network ips
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ips:
+ type: comma_delimited_list
+ label: OAM network ips
+ description: OAM network ips
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_volumes:
+ type: comma_delimited_list
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ server_pcm_001:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+ oam_net_name: { get_param: oam_net_name }
+ oam_net_ip: { get_param: [oam_net_ips, 0] }
+ oam_net_mask: { get_param: oam_net_mask }
+ oam_net_gw: { get_param: oam_net_gw }
+
+ server_pcm_002:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ pcm_server_name: { get_param: [pcm_server_names, 0] }
+ pcm_image_name: { get_param: pcm_image_name }
+ pcm_flavor_name: { get_param: pcm_flavor_name }
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4_2.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4_2.yaml
new file mode 100644
index 0000000000..b59df84764
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/hot-nimbus-pcm_v0.4_2.yaml
@@ -0,0 +1,79 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_names:
+ type: comma_delimited_list
+ label: PCRF CM server names
+ description: name of the PCRF CM instance
+ pcm_image_name:
+ type: string
+ label: PCRF CM image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ips:
+ type: comma_delimited_list
+ label: CPS network ips
+ description: CPS network ips
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ips:
+ type: comma_delimited_list
+ label: OAM network ips
+ description: OAM network ips
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_volumes:
+ type: comma_delimited_list
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ server_pcm_003:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+
+ server_pcm_004:
+ type: nested-pcm_v0.1_2.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1.yaml
new file mode 100644
index 0000000000..66a03796fb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1.yaml
@@ -0,0 +1,138 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ pcm_image_name:
+ type: string
+ label: image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ip:
+ type: string
+ label: CPS network ip
+ description: CPS network ip
+ cps_net_ips:
+ type: string
+ label: CPS network ip
+ description: CPS network ip
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ip:
+ type: string
+ label: OAM network ip
+ description: OAM network ip
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_vol:
+ type: string
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ pcm_volumes:
+ type: string
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ server_pcm_005:
+ type: nested-pcm_v0.1_2.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+ server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+
+ script_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+
+ network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: cps_net_name}
+
+ server_pcm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: pcm_port_0}
+ - port: { get_resource: pcm_port_1}
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+
+ pcm_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: cps_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ pcm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_name }
+ fixed_ips:
+ - ip_address: { get_param: oam_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ #pcm_vol_attachment:
+ # type: OS::Cinder::VolumeAttachment
+ # properties:
+ # volume_id: { get_param: pcm_vol }
+ # mountpoint: /dev/vdb
+ # instance_uuid: { get_resource: server_pcm }
+outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: { get_resource: server_pcm } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1_2.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1_2.yaml
new file mode 100644
index 0000000000..11be0dd63b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/recursive/inputs/nested-pcm_v0.1_2.yaml
@@ -0,0 +1,110 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ pcm_image_name:
+ type: string
+ label: image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ip:
+ type: string
+ label: CPS network ip
+ description: CPS network ip
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_vol:
+ type: string
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ip:
+ type: string
+resources:
+ server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+
+ script_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+
+ network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: cps_net_name}
+
+ server_pcm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: pcm_port_0}
+ - port: { get_resource: pcm_port_1}
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+
+ pcm_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: cps_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ pcm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_name }
+ fixed_ips:
+ - ip_address: { get_param: oam_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ #pcm_vol_attachment:
+ # type: OS::Cinder::VolumeAttachment
+ # properties:
+ # volume_id: { get_param: pcm_vol }
+ # mountpoint: /dev/vdb
+ # instance_uuid: { get_resource: server_pcm }
+outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: { get_resource: server_pcm } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..15b5e3b3a8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,161 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+ indx:
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ attributes:
+ vnfci_id_2:
+ type: string
+ vnfci_id_1:
+ type: string
+ requirements:
+ - local_storage_vnfci:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_mgmt_port:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ os_vnfci:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_mgmt_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_vnfci:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vnfci:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vnfci:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_vnfci:
+ type: tosca.capabilities.Scalable
+ 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/heat/nested/resourceGroupIndexVar/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..b07fa5b70b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,569 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.compute:
+ 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
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ type_name:
+ hidden: false
+ immutable: false
+ type: string
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ compute_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ num_instances:
+ hidden: false
+ immutable: false
+ type: float
+ description: number of instance of the VF_module
+ node_templates:
+ mvs_modules_custIndexVar2:
+ type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ - get_input: vf_module_id
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - concat:
+ - fff
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vf_name:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - vf_name
+ cloud_zone_id:
+ concat:
+ - cloud_zone_id_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vf_instance_num:
+ concat:
+ - vf_instance_num_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _bbbb
+ virtual_mgmt_ip_0:
+ get_input: virtual_mgmt_ip_0
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_mgmt_ip_0: mvs_mgmt_ip_0
+ flavor:
+ a: a
+ b: b
+ e:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ w:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _pp
+ key_name:
+ - a
+ - b
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - concat:
+ - p
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ service_template_filter:
+ substitute_service_template: mvs.nested.heatServiceTemplate.yaml
+ count: 2
+ mandatory: true
+ vnf_id: null
+ availability_zone_0:
+ get_input: availability_zone_0
+ mgmt_net_id:
+ get_input: mgmt_net_id
+ vm_instance_num:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _vm_instance_num_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _hhh_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _pppp
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ bootimage:
+ get_input: bootimage
+ sec_groups:
+ get_input: sec_groups
+ vf_component:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_modules_custIndexVar1:
+ type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ - get_input: vf_module_id
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - concat:
+ - fff
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vf_name:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - vf_name
+ cloud_zone_id:
+ concat:
+ - cloud_zone_id_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vf_instance_num:
+ concat:
+ - vf_instance_num_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _bbbb
+ virtual_mgmt_ip_0:
+ get_input: virtual_mgmt_ip_0
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_mgmt_ip_0: mvs_mgmt_ip_0
+ flavor:
+ a: a
+ b: b
+ e:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ w:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _pp
+ key_name:
+ - a
+ - b
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - concat:
+ - p
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ service_template_filter:
+ substitute_service_template: mvs.nested.heatServiceTemplate.yaml
+ count: 2
+ mandatory: true
+ vnf_id: null
+ availability_zone_0:
+ get_input: availability_zone_0
+ mgmt_net_id:
+ get_input: mgmt_net_id
+ vm_instance_num:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _vm_instance_num_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _hhh_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _pppp
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ bootimage:
+ get_input: bootimage
+ sec_groups:
+ get_input: sec_groups
+ vf_component:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_modules_defaultIndexVar:
+ type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ - get_input: vf_module_id
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - concat:
+ - fff
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vf_name:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - vf_name
+ cloud_zone_id:
+ concat:
+ - cloud_zone_id_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ vf_instance_num:
+ concat:
+ - vf_instance_num_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _bbbb
+ virtual_mgmt_ip_0:
+ get_input: virtual_mgmt_ip_0
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_mgmt_ip_0: mvs_mgmt_ip_0
+ flavor:
+ a: a
+ b:
+ aa:
+ - sss
+ - concat:
+ - dddd
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - ppp
+ - sd
+ ppp:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _pppp___
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ eeee: eeeeeee
+ e:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ w:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _pp
+ key_name:
+ - a
+ - b
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - concat:
+ - p
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ service_template_filter:
+ substitute_service_template: mvs.nested.heatServiceTemplate.yaml
+ count: 3
+ mandatory: true
+ vnf_id: null
+ availability_zone_0:
+ get_input: availability_zone_0
+ mgmt_net_id:
+ get_input: mgmt_net_id
+ vm_instance_num:
+ concat:
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _vm_instance_num_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _hhh_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - _pppp
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ bootimage:
+ get_input: bootimage
+ sec_groups:
+ get_input: sec_groups
+ vf_component:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ server_compute_get_attr_test:
+ type: org.openecomp.resource.vfc.nodes.heat.compute
+ properties:
+ flavor: compute_flavor_name
+ image:
+ get_input: compute_image_name
+ config_drive:
+ get_attribute:
+ - mvs_modules_defaultIndexVar
+ - vnfci_id_1
+ - vnfci_id_2
+ user_data_format:
+ get_attribute:
+ - mvs_modules_defaultIndexVar
+ - vnfci_id_1
+ - 1
+ name: compute_name
+ groups:
+ mvs.vfmodule.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.vfmodule.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - mvs_modules_custIndexVar2
+ - mvs_modules_custIndexVar1
+ - mvs_modules_defaultIndexVar
+ - server_compute_get_attr_test \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
new file mode 100644
index 0000000000..11369f9b68
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
@@ -0,0 +1,254 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: mvs.nested.heat
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.vnfci:
+ 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
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ indx:
+ hidden: false
+ immutable: false
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ node_templates:
+ vnfci:
+ type: org.openecomp.resource.vfc.nodes.heat.vnfci
+ properties:
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ mgmt_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: sec_groups
+ fixed_ips:
+ - ip_address:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - get_input: mvs_mgmt_ip_0
+ allowed_address_pairs:
+ - ip_address:
+ get_input: virtual_mgmt_ip_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ network:
+ get_input: mgmt_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vnfci
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ mvs.nested.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.nested.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - vnfci
+ - mgmt_port
+ outputs:
+ vnfci_id_2:
+ value: vnfci
+ vnfci_id_1:
+ value: vnfci
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ capabilities:
+ os_vnfci:
+ - vnfci
+ - os
+ attachment_mgmt_port:
+ - mgmt_port
+ - attachment
+ endpoint_vnfci:
+ - vnfci
+ - endpoint
+ host_vnfci:
+ - vnfci
+ - host
+ binding_vnfci:
+ - vnfci
+ - binding
+ scalable_vnfci:
+ - vnfci
+ - scalable
+ requirements:
+ local_storage_vnfci:
+ - vnfci
+ - local_storage
+ link_mgmt_port:
+ - mgmt_port
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/MANIFEST.json
new file mode 100644
index 0000000000..c7729c8653
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/MANIFEST.json
@@ -0,0 +1,19 @@
+{
+ "name": "mvs.vfmodule.heat.yaml",
+ "description": "Metaswitch MVS (Metaview Server)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "mvs.vfmodule.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ },
+ {
+ "file": "mvs.nested.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.nested.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.nested.heat.yaml
new file mode 100644
index 0000000000..01adb51d71
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.nested.heat.yaml
@@ -0,0 +1,129 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ indx:
+ type: number
+ description: Index of the current instance
+
+resources:
+ mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ network_id: { get_param: mgmt_net_id }
+ security_groups: [{ get_param: sec_groups }]
+
+ fixed_ips:
+ - ip_address: { "Fn::Select" : [ { get_param: indx }, { get_param: [{ get_param: mvs_mgmt_ip_0 }] } ] }
+
+ allowed_address_pairs:
+ - ip_address: { get_param: virtual_mgmt_ip_0 }
+
+
+
+ vnfci:
+ type: OS::Nova::Server
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: mgmt_port }
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+
+outputs:
+ vnfci_id_1:
+ value: { get_resource: vnfci }
+ vnfci_id_2:
+ value: { get_resource: vnfci } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.vfmodule.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.vfmodule.heat.yaml
new file mode 100644
index 0000000000..6b42078b21
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupIndexVar/inputs/mvs.vfmodule.heat.yaml
@@ -0,0 +1,228 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+ type_name:
+ type: string
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ num_instances:
+ type: number
+ description: number of instance of the VF_module
+
+ compute_image_name:
+ type: string
+
+resources:
+ mvs_modules_defaultIndexVar:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: cloud_zone_id_%index%
+ vf_name: "%index%vf_name"
+ vf_instance_num: "vf_instance_num_%index%_bbbb"
+ vf_component: "%index%"
+ vm_instance_num: "%index%_vm_instance_num_%index%_hhh_%index%%index%%index%_pppp%index%"
+ vnf_id:
+ vf_module_id: [{ get_param: vf_module_id }, "%index%", fff%index% ]
+ bootimage: { get_param: bootimage }
+ flavor:
+ a: a
+ b:
+ aa: [sss,dddd%index%ppp, sd]
+ ppp: "%index%_pppp___%index%"
+ eeee: eeeeeee
+ e: "%index%"
+ w: "%index%_pp"
+ key_name: [a,b,"%index%",p%index%]
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: mvs_mgmt_ip_0
+ indx: "%index%"
+
+ mvs_modules_custIndexVar1:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 2
+ index_var: myIndex
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: cloud_zone_id_myIndex
+ vf_name: "myIndexvf_name"
+ vf_instance_num: "vf_instance_num_myIndex_bbbb"
+ vf_component: "myIndex"
+ vm_instance_num: "myIndex_vm_instance_num_myIndex_hhh_myIndexmyIndexmyIndex_ppppmyIndex"
+ vnf_id:
+ vf_module_id: [{ get_param: vf_module_id }, "myIndex", fffmyIndex ]
+ bootimage: { get_param: bootimage }
+ flavor:
+ a: a
+ b: b
+ e: myIndex
+ w: myIndex_pp
+ key_name: [a,b,myIndex,pmyIndex]
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: mvs_mgmt_ip_0
+ indx: "myIndex"
+
+ mvs_modules_custIndexVar2:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 2
+ index_var: "%myIndex%"
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: cloud_zone_id_%myIndex%
+ vf_name: "%myIndex%vf_name"
+ vf_instance_num: "vf_instance_num_%myIndex%_bbbb"
+ vf_component: "%myIndex%"
+ vm_instance_num: "%myIndex%_vm_instance_num_%myIndex%_hhh_%myIndex%%myIndex%%myIndex%_pppp%myIndex%"
+ vnf_id:
+ vf_module_id: [{ get_param: vf_module_id }, "%myIndex%", fff%myIndex% ]
+ bootimage: { get_param: bootimage }
+ flavor:
+ a: a
+ b: b
+ e: "%myIndex%"
+ w: "%myIndex%_pp"
+ key_name: [a,b,"%myIndex%",p%myIndex%]
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: mvs_mgmt_ip_0
+ indx: "%myIndex%"
+
+ not_supported_resourceGroup1:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: OS::Heat::ResourceGroup
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ not_supported_resourceGroup2:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: { get_param: type_name }
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ server_compute_get_attr_test:
+ type: OS::Nova::Server
+ properties:
+ config_drive: {get_attr: [mvs_modules_defaultIndexVar]}
+ name: compute_name
+ image: { get_param: compute_image_name }
+ flavor: compute_flavor_name
+ user_data_format: { get_attr: [mvs_modules_defaultIndexVar , resource.1.vnfci_id_1] }
+ user_data: { get_attr: [mvs_modules_defaultIndexVar, resource.vnfci_id_2]}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/MANIFEST.json
new file mode 100644
index 0000000000..c7729c8653
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/MANIFEST.json
@@ -0,0 +1,19 @@
+{
+ "name": "mvs.vfmodule.heat.yaml",
+ "description": "Metaswitch MVS (Metaview Server)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "mvs.vfmodule.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ },
+ {
+ "file": "mvs.nested.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.nested.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.nested.heat.yaml
new file mode 100644
index 0000000000..01adb51d71
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.nested.heat.yaml
@@ -0,0 +1,129 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ indx:
+ type: number
+ description: Index of the current instance
+
+resources:
+ mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ network_id: { get_param: mgmt_net_id }
+ security_groups: [{ get_param: sec_groups }]
+
+ fixed_ips:
+ - ip_address: { "Fn::Select" : [ { get_param: indx }, { get_param: [{ get_param: mvs_mgmt_ip_0 }] } ] }
+
+ allowed_address_pairs:
+ - ip_address: { get_param: virtual_mgmt_ip_0 }
+
+
+
+ vnfci:
+ type: OS::Nova::Server
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: mgmt_port }
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+
+outputs:
+ vnfci_id_1:
+ value: { get_resource: vnfci }
+ vnfci_id_2:
+ value: { get_resource: vnfci } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.vfmodule.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.vfmodule.heat.yaml
new file mode 100644
index 0000000000..d71dd81fbf
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupInvalid/inputs/mvs.vfmodule.heat.yaml
@@ -0,0 +1,166 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ index_parameter:
+ type: string
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+ type_name:
+ type: string
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ num_instances:
+ type: number
+ description: number of instance of the VF_module
+
+ compute_image_name:
+ type: string
+
+resources:
+ mvs_modules:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ index_var: { get_param: index_parameter }
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ not_supported_resourceGroup1:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: OS::Heat::ResourceGroup
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ not_supported_resourceGroup2:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: { get_param: type_name }
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ server_compute_get_attr_test:
+ type: OS::Nova::Server
+ properties:
+ config_drive: {get_attr: [mvs_modules]}
+ name: compute_name
+ image: { get_param: compute_image_name }
+ flavor: compute_flavor_name
+ user_data_format: { get_attr: [mvs_modules , resource.1.vnfci_id_1] }
+ user_data: { get_attr: [mvs_modules, resource.vnfci_id_2]}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..ec3b692135
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,153 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.dns_nested_01:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF module instance
+ name_with_index:
+ type: string
+ description: name parameter which will include the index value
+ dns_int_bearer_ips:
+ type: list
+ description: DNS Bearer IP list
+ entry_schema:
+ type: string
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+ index:
+ type: float
+ description: index parameter
+ security_group:
+ type: string
+ description: security group
+ oam_protected_net_name:
+ type: string
+ description: OAM network where instaces will connect
+ dns_oam_protected_ips:
+ type: list
+ description: DNS OAM IP list
+ entry_schema:
+ type: string
+ dns_key:
+ type: string
+ description: server key
+ int_bearer_net_name:
+ type: string
+ description: Bearer network where instaces will connect
+ route_eth0:
+ type: string
+ description: OAM network routes
+ dns_names:
+ type: list
+ description: server name
+ entry_schema:
+ type: string
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ type: string
+ description: availability zone ID or Name
+ dns_image_name:
+ type: string
+ description: server image
+ dns_int_bearer_ipv6_ips:
+ type: list
+ description: fixed IPv6 assignment for VM's on the Bearer network
+ entry_schema:
+ type: string
+ dns_flavor_name:
+ type: string
+ description: server flavor
+ requirements:
+ - link_dns_oam_protected_0_port:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - link_dns_int_bearer_0_port:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_dns_servers:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ capabilities:
+ host_dns_servers:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_dns_int_bearer_0_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_dns_oam_protected_0_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_dns_servers:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_dns_servers:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_dns_servers:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_dns_servers:
+ type: tosca.capabilities.Scalable
+ 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/heat/nested/resourceGroupMDNS/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..6eae1ff185
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,246 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ vf_module_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF module instance
+ dns_int_bearer_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: DNS Bearer IP list
+ entry_schema:
+ type: string
+ vnf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VF instance
+ oam_protected_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network where instaces will connect
+ dns_oam_protected_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: DNS OAM IP list
+ entry_schema:
+ type: string
+ dns_key:
+ hidden: false
+ immutable: false
+ type: string
+ description: creator's ssh public key
+ int_bearer_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Bearer network where instaces will connect
+ route_eth0:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network routes
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: availability zone ID or Name
+ DNS_shared_sec_grp_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: security group UUID
+ node_count:
+ hidden: false
+ immutable: false
+ type: float
+ description: the number of DNS nested instances
+ default: 4
+ dns_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: operative system image
+ default: NIMBUS_DNS_3.0.2.qcow2
+ dns_int_bearer_ipv6_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: fixed IP assignment for VM's on the Bearer network
+ entry_schema:
+ type: string
+ dns_server_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: DNS VM server name list
+ entry_schema:
+ type: string
+ dns_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: resources to by appplied on instances
+ default: nv.c4r4d80
+ node_templates:
+ dns_server_group_az:
+ type: org.openecomp.resource.abstract.nodes.heat.dns_nested_01
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ name_with_index:
+ concat:
+ - name_
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ dns_int_bearer_ips:
+ get_input: dns_int_bearer_ips
+ vnf_name:
+ get_input: vnf_name
+ index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ security_group:
+ get_input: DNS_shared_sec_grp_id
+ oam_protected_net_name:
+ get_input: oam_protected_net_name
+ dns_oam_protected_ips:
+ get_input: dns_oam_protected_ips
+ dns_key:
+ get_input: dns_key
+ int_bearer_net_name:
+ get_input: int_bearer_net_name
+ route_eth0:
+ get_input: route_eth0
+ service_template_filter:
+ substitute_service_template: dns_nested_01ServiceTemplate.yaml
+ count:
+ get_input: node_count
+ mandatory: false
+ dns_names:
+ get_input: dns_server_names
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_0
+ dns_image_name:
+ get_input: dns_image_name
+ dns_int_bearer_ipv6_ips:
+ get_input: dns_int_bearer_ipv6_ips
+ dns_flavor_name:
+ get_input: dns_flavor_name
+ DNS_SECURITY_GROUP:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+ properties:
+ name:
+ str_replace:
+ template: VF_NAME_sec_grp_DNS
+ params:
+ VF_NAME:
+ get_input: vnf_name
+ description: vscp 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: 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
+ requirements:
+ - port:
+ capability: attachment_dns_int_bearer_0_port
+ node: dns_server_group_az
+ relationship: org.openecomp.relationships.AttachesTo
+ - port:
+ capability: attachment_dns_oam_protected_0_port
+ node: dns_server_group_az
+ relationship: org.openecomp.relationships.AttachesTo
+ groups:
+ base_dns:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/base_dns.yaml
+ description: |
+ Base HOT template to create The Security Group for the the DNS VNF
+ members:
+ - DNS_SECURITY_GROUP
+ dns_az_01:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/dns_az_01.yaml
+ description: DNS master template
+ members:
+ - dns_server_group_az \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/dns_nested_01ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/dns_nested_01ServiceTemplate.yaml
new file mode 100644
index 0000000000..db6b3a0179
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles/dns_nested_01ServiceTemplate.yaml
@@ -0,0 +1,249 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: dns_nested_01
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.dns:
+ 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
+ name_with_index:
+ hidden: false
+ immutable: false
+ type: string
+ description: name parameter which will include the index value
+ dns_int_bearer_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: DNS Bearer IP list
+ entry_schema:
+ type: string
+ vnf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VF instance
+ index:
+ hidden: false
+ immutable: false
+ type: float
+ description: index parameter
+ security_group:
+ hidden: false
+ immutable: false
+ type: string
+ description: security group
+ oam_protected_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network where instaces will connect
+ dns_oam_protected_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: DNS OAM IP list
+ entry_schema:
+ type: string
+ dns_key:
+ hidden: false
+ immutable: false
+ type: string
+ description: server key
+ int_bearer_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Bearer network where instaces will connect
+ route_eth0:
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network routes
+ dns_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: server name
+ entry_schema:
+ type: string
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: availability zone ID or Name
+ dns_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: server image
+ dns_int_bearer_ipv6_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: fixed IPv6 assignment for VM's on the Bearer network
+ entry_schema:
+ type: string
+ dns_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: server flavor
+ node_templates:
+ dns_oam_protected_0_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - dns_oam_protected_ips
+ - get_input: index
+ name:
+ str_replace:
+ template: VNF_NAME_dns_oam_port
+ params:
+ VNF_NAME:
+ get_input: vnf_name
+ network:
+ get_input: oam_protected_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: dns_servers
+ relationship: tosca.relationships.network.BindsTo
+ dns_int_bearer_0_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group
+ fixed_ips:
+ - ip_address:
+ get_input:
+ - dns_int_bearer_ips
+ - get_input: index
+ - ip_address:
+ get_input:
+ - dns_int_bearer_ipv6_ips
+ - get_input: index
+ name:
+ str_replace:
+ template: VNF_NAME_dns_bearer_port
+ params:
+ VNF_NAME:
+ get_input: vnf_name
+ network:
+ get_input: int_bearer_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: dns_servers
+ relationship: tosca.relationships.network.BindsTo
+ dns_servers:
+ type: org.openecomp.resource.vfc.nodes.heat.dns
+ properties:
+ flavor:
+ get_input: dns_flavor_name
+ key_name:
+ get_input: dns_key
+ availability_zone:
+ get_input: availability_zone_0
+ image:
+ get_input: dns_image_name
+ metadata:
+ vf_module_id:
+ get_input: vf_module_id
+ vnf_name {get_param: vnf_name }
+ vnf_id:
+ get_input: vnf_id
+ user_data_format: RAW
+ name:
+ get_input:
+ - dns_names
+ - get_input: index
+ groups:
+ dns_nested_01:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/dns_nested_01.yaml
+ description: |
+ nested DNS template for a single VM
+ all parameters are passed from calling heat template of resourcegroup
+ members:
+ - dns_oam_protected_0_port
+ - dns_int_bearer_0_port
+ - dns_servers
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.dns_nested_01
+ capabilities:
+ host_dns_servers:
+ - dns_servers
+ - host
+ attachment_dns_int_bearer_0_port:
+ - dns_int_bearer_0_port
+ - attachment
+ attachment_dns_oam_protected_0_port:
+ - dns_oam_protected_0_port
+ - attachment
+ os_dns_servers:
+ - dns_servers
+ - os
+ endpoint_dns_servers:
+ - dns_servers
+ - endpoint
+ binding_dns_servers:
+ - dns_servers
+ - binding
+ scalable_dns_servers:
+ - dns_servers
+ - scalable
+ requirements:
+ local_storage_dns_servers:
+ - dns_servers
+ - local_storage
+ link_dns_oam_protected_0_port:
+ - dns_oam_protected_0_port
+ - link
+ link_dns_int_bearer_0_port:
+ - dns_int_bearer_0_port
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/MANIFEST.json
new file mode 100644
index 0000000000..0fa0f714da
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/MANIFEST.json
@@ -0,0 +1,37 @@
+{
+ "name": "",
+ "description": "",
+ "data": [
+ {
+ "file": "dns_nested_01.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "base_dns.yaml",
+ "type": "HEAT",
+ "isBase": "true",
+ "data": [
+ {
+ "file": "base_dns.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "dns_az_01.yaml",
+ "type": "HEAT",
+ "isBase": "false",
+ "data": [
+ {
+ "file": "dns_az_01.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "nimbus-willows-2.pem",
+ "type": "OTHER"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.env
new file mode 100644
index 0000000000..3ab724f7ab
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.env
@@ -0,0 +1,8 @@
+##NIMBUS - DNS Base Template ENV File
+#AUTHORS:
+
+#####################
+parameters:
+#####################
+
+# vnf_name: 'zrdm3mdns01'
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.yaml
new file mode 100644
index 0000000000..821f10212f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/base_dns.yaml
@@ -0,0 +1,43 @@
+heat_template_version: 2015-04-30
+#Nimbus DNS Base Template
+#AUTHORS:
+description: >
+ Base HOT template to create The Security Group for the the DNS VNF
+
+#####################
+parameters:
+#####################
+
+## GLOBAL//Basic 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
+
+#####################
+resources:
+#####################
+
+ DNS_SECURITY_GROUP:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: vscp security group
+ name:
+ str_replace:
+ template: VF_NAME_sec_grp_DNS
+ params:
+ VF_NAME: {get_param: vnf_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}
+ ]
+
+
+outputs:
+ DNS_shared_sec_grp_id:
+ description: UUID of DNS Resource SecurityGroup
+ value: { get_resource: DNS_SECURITY_GROUP }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.env
new file mode 100644
index 0000000000..8e0e80c67f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.env
@@ -0,0 +1,21 @@
+parameters:
+ dns_image_name: NIMBUS_DNS_3.0.2.qcow2
+ dns_flavor_name: nv.c4r4d80
+# dns_key: nimbus-willows-1
+# oam_protected_net_name: MNS-25180-L-06Shared_OAM_PROTECTED_NET_1
+# int_bearer_net_name: Nimbus-25193-T-Willows1_int_fw_dns_trusted_net_1
+ node_count: 4
+# dns_oam_protected_ips: 107.239.81.114,107.239.81.115,107.239.81.116,107.239.81.117
+# dns_int_bearer_ips: 172.26.18.64,172.26.18.65,172.26.18.66,172.26.18.67
+# dns_int_bearer_ipv6_ips: fd00:2600:2600:101::40,fd00:2600:2600:101::41,fd00:2600:2600:101::42,fd00:2600:2600:101::43
+# dns_server_names: zrdm3mdns01cmd001,zrdm3mdns01cmd002,zrdm3mdns01cmd003,zrdm3mdns01cmd004
+# route_eth0: |
+# 10.147.38.211/32 via 107.239.81.1 dev eth0
+# 155.165.201.253/32 via 107.239.81.1 dev eth0
+# 141.204.0.0/16 via 107.239.81.1 dev eth0
+# DNS_shared_sec_grp_id: 5f809b4c-a1af-4064-86ef-0aebb761a749
+# availability_zone_0: rdm3-kvm-az01
+# vnf_name: 'zrdm3mdns01'
+# vnf_id: 'dummy'
+# vf_module_id: 'dummy'
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.yaml
new file mode 100644
index 0000000000..84aacaba35
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_az_01.yaml
@@ -0,0 +1,94 @@
+heat_template_version: 2014-10-16
+
+description: DNS master template
+
+parameters:
+ dns_image_name:
+ type: string
+ description: operative system image
+ dns_flavor_name:
+ type: string
+ description: resources to by appplied on instances
+ dns_key:
+ type: string
+ description: creator's ssh public key
+ node_count:
+ type: number
+ description: the number of DNS nested instances
+ oam_protected_net_name:
+ type: string
+ description: OAM network where instaces will connect
+ int_bearer_net_name:
+ type: string
+ description: Bearer network where instaces will connect
+ dns_oam_protected_ips:
+ type: comma_delimited_list
+ description: DNS OAM IP list
+ dns_int_bearer_ips:
+ type: comma_delimited_list
+ description: DNS Bearer IP list
+ dns_int_bearer_ipv6_ips:
+ type: comma_delimited_list
+ description: fixed IP assignment for VM's on the Bearer network
+ dns_server_names:
+ type: comma_delimited_list
+ description: DNS VM server name list
+ route_eth0:
+ type: string
+ description: OAM network routes
+ DNS_shared_sec_grp_id:
+ type: string
+ description: security group UUID
+ availability_zone_0:
+ type: string
+ description: availability zone ID or Name
+ 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
+ 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
+
+
+resources:
+ dns_server_group_az:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: node_count }
+ index_var: index
+ resource_def:
+ type: dns_nested_01.yaml
+ properties:
+ index: index
+ name_with_index: name_index
+ dns_image_name: { get_param: dns_image_name }
+ dns_flavor_name: { get_param: dns_flavor_name }
+ dns_key: { get_param: dns_key }
+ availability_zone_0: { get_param: availability_zone_0 }
+ security_group: { get_param: DNS_shared_sec_grp_id }
+ oam_protected_net_name: { get_param: oam_protected_net_name }
+ int_bearer_net_name: { get_param: int_bearer_net_name }
+ dns_oam_protected_ips: { get_param: dns_oam_protected_ips }
+ dns_int_bearer_ips: { get_param: dns_int_bearer_ips }
+ dns_int_bearer_ipv6_ips: { get_param: dns_int_bearer_ipv6_ips }
+ dns_names: { get_param: dns_server_names }
+ route_eth0: { get_param: route_eth0 }
+ vnf_name: { get_param: vnf_name }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: {get_param: vf_module_id}
+
+#outputs:
+# vm_name:
+# description: VM name
+# value: { get_attr: [ dns_server_group_az, vm_name ] }
+# networks:
+# description: networks
+# value: { get_attr: [ dns_server_group_az, networks ] }
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_nested_01.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_nested_01.yaml
new file mode 100644
index 0000000000..5be9d49bb0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/dns_nested_01.yaml
@@ -0,0 +1,127 @@
+heat_template_version: 2014-10-16
+
+description: |
+ nested DNS template for a single VM
+ all parameters are passed from calling heat template of resourcegroup
+
+parameters:
+ dns_image_name:
+ type: string
+ description: server image
+ dns_flavor_name:
+ type: string
+ description: server flavor
+ dns_key:
+ type: string
+ description: server key
+ oam_protected_net_name:
+ type: string
+ description: OAM network where instaces will connect
+ int_bearer_net_name:
+ type: string
+ description: Bearer network where instaces will connect
+ dns_oam_protected_ips:
+ type: comma_delimited_list
+ description: DNS OAM IP list
+ dns_int_bearer_ips:
+ type: comma_delimited_list
+ description: DNS Bearer IP list
+ dns_int_bearer_ipv6_ips:
+ type: comma_delimited_list
+ description: fixed IPv6 assignment for VM's on the Bearer network
+ dns_names:
+ type: comma_delimited_list
+ description: server name
+ route_eth0:
+ type: string
+ description: OAM network routes
+ index:
+ type: number
+ description: index parameter
+ name_with_index:
+ type: string
+ description: name parameter which will include the index value
+ security_group:
+ type: string
+ description: security group
+ availability_zone_0:
+ type: string
+ description: availability zone ID or Name
+# this parameter does not follow the D2 Guidelines. This value will be az0 or az1.
+ 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
+ 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
+
+
+resources:
+
+ dns_oam_protected_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: VNF_NAME_dns_oam_port
+ params:
+ VNF_NAME: {get_param: vnf_name}
+ network: { get_param: oam_protected_net_name }
+ fixed_ips: [{ "ip_address": { get_param: [ dns_oam_protected_ips, get_param: index ]}}]
+ security_groups: [{ get_param: security_group }]
+
+ dns_int_bearer_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: VNF_NAME_dns_bearer_port
+ params:
+ VNF_NAME: {get_param: vnf_name}
+ network: { get_param: int_bearer_net_name }
+ fixed_ips: [{ "ip_address": { get_param: [ dns_int_bearer_ips, get_param: index ]}}, { "ip_address": { get_param: [ dns_int_bearer_ipv6_ips, get_param: index ]}}]
+ security_groups: [{ get_param: security_group }]
+
+ dns_servers:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ dns_names, get_param: index ] }
+ image: { get_param: dns_image_name }
+ flavor: { get_param: dns_flavor_name }
+ key_name: { get_param: dns_key }
+ availability_zone: { get_param: availability_zone_0 }
+ networks:
+ - port: { get_resource: dns_oam_protected_0_port }
+ - port: { get_resource: dns_int_bearer_0_port }
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ vnf_name {get_param: vnf_name }
+ user_data_format: RAW
+ user_data: { get_resource: server_interface_config }
+
+ server_interface_config:
+ type: OS::Heat::CloudConfig
+ properties:
+ cloud_config:
+ write_files:
+ - path: /etc/sysconfig/network-scripts/route-eth0
+ permissions: "0644"
+# content: { get_file: route-eth0 }
+ content: { get_param: route_eth0 }
+
+#outputs:
+# vm_name:
+# description: VM name
+# value: { get_attr: [ dns_servers, name] }
+# networks:
+# description: networks
+# value: { get_attr: [ dns_servers, networks ] }
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/nimbus-willows-2.pem b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/nimbus-willows-2.pem
new file mode 100644
index 0000000000..ca613f176c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resourceGroupMDNS/inputs/nimbus-willows-2.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA4JxAkJFmleoEjBIs+ZHH1yYn0uFtLnN2JX7alC9t/4LUgShK
+CWHg+NZgCp1rCCfEZ16OMIlJViaw3i50BwSbh71vHHLfgpbKuCaxVblSsokWJf1P
+vNjcpb1uE4/GgAGTOvVpBJ67aSFL2cqN0RRmoDkXD0Es0Oog7X2/DSXex6rSfWrh
+I6RplcvljEOp3svhZxrCM5B9byn9931eja0NpJmggDQqzlrh6s01iqQKSZ3C6Cp4
+g0YMff3FP6b6xWbt/2wK2aR5/so64LZmBbxJHgBkQOAUsUdt6aWgx9lUKAly1KFo
+4+E67IX9k6KR/ZA67hny2UHg5Rz9J/YTvJYT5QIDAQABAoIBAFnh7Wxs4zKGzX8I
+HvtYPTJ50GHxV/HIvrTOiMXYHRqszkFJUCdlBdROZWyaBiTjVRNQoXIG3lQdc5XV
+3RSZ4Wt2gSpPReZKVaFPypNVcCSF+1kEf45A8jtZDN3DIVpERxjG8Fmq87BkZKgp
+CItssIzZi8LNABQyPS8MrRGj3/ziPMNqyMaZao+nI4sQVoVIID5LMhCjFby5Afx9
+6DHOMgkySCqhUVox9rG9sNSyStElJaIUyrel0ZM51C6zMbKftrHcgRyzCbJSzSGy
+yMFyAQCc+OzJ5ulcHMMSGrwsQv1EN5ck4W5SjUUPS90a7LdAi5Qap6nkLrOaieKc
+Xt/p+xkCgYEA/yqPa9jQMAHEj8aPpbZ8M+25m0hfrojYm0AdpVceHKualI8mfNOC
+J+Y8ivMcmx5dey1Y+SlQZCv+nOKaJPz6yIppZLoDVm1JCcV4n16NtCWbGma/QGKL
+QDxfC2WdMLjCRFYOFXg6PQybYL0a4jjNMB7MmgHv0PGojzxVnk2Tw3cCgYEA4Vgh
+/dHncYAFWgG3g8zNbWqWOwJVT9Qxk4wX5KJbwSrumGXcvJFpYWhXZqZB9UF32n0f
+bIb+N0swa0MmU+aXM0iBsUxaso7nPeiKuszzZ43/Z4xckkoPJfkw0VXAD5W0z+7i
+bQW+lDjbH0i/xty0LWrCJzCUVfYPCK84qXpm4oMCgYEA37r6jA5L5Hv4VDQ+yYbq
++kErp/raYld8zQt3svxi27KfVDj7/yEZE1DtrsuhPmVug81sIPPXmC13DyolC9+B
+KIssA/SRbpteGiI6NEqcpuL+TzTd5l9BR65ni7+qBwlI1NA7gxmqvtKp/jVxN/+j
+8dhff33JP4RUTlsRmz7cG9sCgYBBxE4PXQ6WMo3dSfj8T255C42S5Uhuxvg9Hrru
+cHAk/VmrQrdclXfTBPfVLpq7cIMBUlk0fGV/T8Nu2qc5/2eLgRLQ4v7pdAmLKO4s
+PJqhU3ECEJYH3/Nx2rtjrQojwkaGFSsiNHX9nmZdSAcoi8tOIgVOGMCCIhEbMMBx
+vhZ+7wKBgQDizYvqTOyODzi3cebk7LzbSg+r1cNE9onvCVej+pnznt5oQtniAzS6
+GbGyKsDHDtmQ15tXdnU2KkTcsXEs9nFxIsOR2QZtQRcMSuRtye5o2qPXf0HdHW/M
+5mheJi2LfaNP5csauJ/WUJYbAS4cn7dz4xUos+7la58upB/or+Q/cg==
+-----END RSA PRIVATE KEY-----
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..15b5e3b3a8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,161 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+ indx:
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ attributes:
+ vnfci_id_2:
+ type: string
+ vnfci_id_1:
+ type: string
+ requirements:
+ - local_storage_vnfci:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_mgmt_port:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ os_vnfci:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_mgmt_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_vnfci:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vnfci:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vnfci:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_vnfci:
+ type: tosca.capabilities.Scalable
+ 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/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..632afc51b3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,223 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.compute:
+ 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
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ type_name:
+ hidden: false
+ immutable: false
+ type: string
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ compute_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ num_instances:
+ hidden: false
+ immutable: false
+ type: float
+ description: number of instance of the VF_module
+ node_templates:
+ mvs_modules:
+ type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ vf_name:
+ get_input: vf_name
+ cloud_zone_id:
+ get_input: cloud_zone_id
+ vf_instance_num:
+ get_input: vf_instance_num
+ virtual_mgmt_ip_0:
+ get_input: virtual_mgmt_ip_0
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_mgmt_ip_0:
+ get_input: mvs_mgmt_ip_0
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ service_template_filter:
+ substitute_service_template: mvs.nested.heatServiceTemplate.yaml
+ count: 3
+ mandatory: true
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_0
+ mgmt_net_id:
+ get_input: mgmt_net_id
+ vm_instance_num:
+ get_input: vm_instance_num
+ bootimage:
+ get_input: bootimage
+ sec_groups:
+ get_input: sec_groups
+ vf_component:
+ get_input: vf_component
+ server_compute_get_attr_test:
+ type: org.openecomp.resource.vfc.nodes.heat.compute
+ properties:
+ flavor: compute_flavor_name
+ image:
+ get_input: compute_image_name
+ config_drive:
+ get_attribute:
+ - mvs_modules
+ - vnfci_id_1
+ - vnfci_id_2
+ user_data_format:
+ get_attribute:
+ - mvs_modules
+ - vnfci_id_1
+ - 1
+ name: compute_name
+ groups:
+ mvs.vfmodule.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.vfmodule.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - mvs_modules
+ - server_compute_get_attr_test \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
new file mode 100644
index 0000000000..11369f9b68
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
@@ -0,0 +1,254 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: mvs.nested.heat
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.vnfci:
+ 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
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ indx:
+ hidden: false
+ immutable: false
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ node_templates:
+ vnfci:
+ type: org.openecomp.resource.vfc.nodes.heat.vnfci
+ properties:
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ mgmt_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: sec_groups
+ fixed_ips:
+ - ip_address:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - get_input: mvs_mgmt_ip_0
+ allowed_address_pairs:
+ - ip_address:
+ get_input: virtual_mgmt_ip_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ network:
+ get_input: mgmt_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vnfci
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ mvs.nested.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.nested.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - vnfci
+ - mgmt_port
+ outputs:
+ vnfci_id_2:
+ value: vnfci
+ vnfci_id_1:
+ value: vnfci
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ capabilities:
+ os_vnfci:
+ - vnfci
+ - os
+ attachment_mgmt_port:
+ - mgmt_port
+ - attachment
+ endpoint_vnfci:
+ - vnfci
+ - endpoint
+ host_vnfci:
+ - vnfci
+ - host
+ binding_vnfci:
+ - vnfci
+ - binding
+ scalable_vnfci:
+ - vnfci
+ - scalable
+ requirements:
+ local_storage_vnfci:
+ - vnfci
+ - local_storage
+ link_mgmt_port:
+ - mgmt_port
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json
new file mode 100644
index 0000000000..c7729c8653
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json
@@ -0,0 +1,19 @@
+{
+ "name": "mvs.vfmodule.heat.yaml",
+ "description": "Metaswitch MVS (Metaview Server)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "mvs.vfmodule.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ },
+ {
+ "file": "mvs.nested.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml
new file mode 100644
index 0000000000..01adb51d71
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml
@@ -0,0 +1,129 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ indx:
+ type: number
+ description: Index of the current instance
+
+resources:
+ mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ network_id: { get_param: mgmt_net_id }
+ security_groups: [{ get_param: sec_groups }]
+
+ fixed_ips:
+ - ip_address: { "Fn::Select" : [ { get_param: indx }, { get_param: [{ get_param: mvs_mgmt_ip_0 }] } ] }
+
+ allowed_address_pairs:
+ - ip_address: { get_param: virtual_mgmt_ip_0 }
+
+
+
+ vnfci:
+ type: OS::Nova::Server
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: mgmt_port }
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+
+outputs:
+ vnfci_id_1:
+ value: { get_resource: vnfci }
+ vnfci_id_2:
+ value: { get_resource: vnfci } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml
new file mode 100644
index 0000000000..380ceae2ff
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml
@@ -0,0 +1,163 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+ type_name:
+ type: string
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ num_instances:
+ type: number
+ description: number of instance of the VF_module
+
+ compute_image_name:
+ type: string
+
+resources:
+ mvs_modules:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ not_supported_resourceGroup1:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: OS::Heat::ResourceGroup
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ not_supported_resourceGroup2:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: 3
+ resource_def:
+ type: { get_param: type_name }
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+ indx: "%index%"
+
+ server_compute_get_attr_test:
+ type: OS::Nova::Server
+ properties:
+ config_drive: {get_attr: [mvs_modules]}
+ name: compute_name
+ image: { get_param: compute_image_name }
+ flavor: compute_flavor_name
+ user_data_format: { get_attr: [mvs_modules , resource.1.vnfci_id_1] }
+ user_data: { get_attr: [mvs_modules, resource.vnfci_id_2]}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..1b1c4dd621
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,166 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+ indx:
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ requirements:
+ - local_storage_vnfci:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_mgmt_port:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ os_vnfci:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_mgmt_port:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ endpoint_vnfci:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_vnfci:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_vnfci:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_boot_volume:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_vnfci:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_data_volume:
+ type: tosca.capabilities.Attachment
+ 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/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..b3b1349b36
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,195 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ vf_module_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ num_instances:
+ hidden: false
+ immutable: false
+ type: float
+ description: number of instance of the VF_module
+ node_templates:
+ mvs_modules:
+ type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ directives:
+ - substitutable
+ properties:
+ vf_module_id:
+ get_input: vf_module_id
+ vf_name:
+ get_input: vf_name
+ cloud_zone_id:
+ get_input: cloud_zone_id
+ vf_instance_num:
+ get_input: vf_instance_num
+ virtual_mgmt_ip_0:
+ get_input: virtual_mgmt_ip_0
+ indx:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ mvs_mgmt_ip_0:
+ get_input: mvs_mgmt_ip_0
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ service_template_filter:
+ substitute_service_template: mvs.nested.heatServiceTemplate.yaml
+ count:
+ get_input: num_instances
+ mandatory: false
+ vnf_id:
+ get_input: vnf_id
+ availability_zone_0:
+ get_input: availability_zone_0
+ mgmt_net_id:
+ get_input: mgmt_net_id
+ vm_instance_num:
+ get_input: vm_instance_num
+ bootimage:
+ get_input: bootimage
+ sec_groups:
+ get_input: sec_groups
+ vf_component:
+ get_input: vf_component
+ groups:
+ mvs.vfmodule.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.vfmodule.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - mvs_modules \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
new file mode 100644
index 0000000000..315318d4f6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml
@@ -0,0 +1,320 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: mvs.nested.heat
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.vnfci:
+ 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
+ vf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 4
+ - min_length: 4
+ cloud_zone_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: The cloud zone for this VF instance
+ vf_instance_num:
+ hidden: false
+ immutable: false
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - pattern: '[0-9]+'
+ - max_length: 2
+ - min_length: 2
+ virtual_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual management network ip address
+ indx:
+ hidden: false
+ immutable: false
+ type: float
+ description: Index of the current instance
+ mvs_mgmt_ip_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Management network IP addresses for IPv4
+ entry_schema:
+ type: string
+ flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Server flavor
+ constraints: [
+ ]
+ key_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: SSH key name
+ constraints: [
+ ]
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VF instance
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of Availability Zone IDs or Names
+ entry_schema:
+ type: string
+ mgmt_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Neutron UUID for the Management network
+ constraints: [
+ ]
+ vm_instance_num:
+ hidden: false
+ immutable: false
+ type: list
+ description: VM instance number list must be a list of three-digit numeric value
+ entry_schema:
+ type: string
+ bootimage:
+ hidden: false
+ immutable: false
+ type: string
+ description: Master bootimage volume id
+ sec_groups:
+ hidden: false
+ immutable: false
+ type: list
+ description: Security groups
+ entry_schema:
+ type: string
+ vf_component:
+ hidden: false
+ immutable: false
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - pattern: '[a-zA-Z0-9]+'
+ - max_length: 3
+ - min_length: 3
+ node_templates:
+ boot_volume:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ image:
+ get_input: bootimage
+ size: 35*1024
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-boot-volume
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ vnfci:
+ type: org.openecomp.resource.vfc.nodes.heat.vnfci
+ properties:
+ flavor:
+ get_input: flavor
+ key_name:
+ get_input: key_name
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: boot_volume
+ relationship: tosca.relationships.AttachesTo
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: data_volume
+ relationship: tosca.relationships.AttachesTo
+ data_volume:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ availability_zone:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - availability_zone_0
+ size: 265*1024
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-data-volume
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ mgmt_port:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: sec_groups
+ fixed_ips:
+ - ip_address:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - get_input: mvs_mgmt_ip_0
+ allowed_address_pairs:
+ - ip_address:
+ get_input: virtual_mgmt_ip_0
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $VF_NAME:
+ get_input: vf_name
+ $CLOUD_ZONE_ID:
+ get_input: cloud_zone_id
+ $VM_INSTANCE_NUM:
+ Fn::Select:
+ - get_input: indx
+ - get_input:
+ - vm_instance_num
+ $VF_COMPONENT:
+ get_input: vf_component
+ $VF_INSTANCE_NUM:
+ get_input: vf_instance_num
+ network:
+ get_input: mgmt_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: vnfci
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ mvs.nested.heat:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/mvs.nested.heat.yaml
+ description: |
+ Metaswitch MVS (Metaview Server)
+ members:
+ - boot_volume
+ - vnfci
+ - data_volume
+ - mgmt_port
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat
+ capabilities:
+ os_vnfci:
+ - vnfci
+ - os
+ attachment_mgmt_port:
+ - mgmt_port
+ - attachment
+ endpoint_vnfci:
+ - vnfci
+ - endpoint
+ host_vnfci:
+ - vnfci
+ - host
+ binding_vnfci:
+ - vnfci
+ - binding
+ attachment_boot_volume:
+ - boot_volume
+ - attachment
+ scalable_vnfci:
+ - vnfci
+ - scalable
+ attachment_data_volume:
+ - data_volume
+ - attachment
+ requirements:
+ local_storage_vnfci:
+ - vnfci
+ - local_storage
+ link_mgmt_port:
+ - mgmt_port
+ - link \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/MANIFEST.json
new file mode 100644
index 0000000000..c7729c8653
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/MANIFEST.json
@@ -0,0 +1,19 @@
+{
+ "name": "mvs.vfmodule.heat.yaml",
+ "description": "Metaswitch MVS (Metaview Server)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "mvs.vfmodule.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ },
+ {
+ "file": "mvs.nested.heat.yaml",
+ "type": "HEAT",
+ "data": [
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.nested.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.nested.heat.yaml
new file mode 100644
index 0000000000..8ddc5c6488
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.nested.heat.yaml
@@ -0,0 +1,165 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ indx:
+ type: number
+ description: Index of the current instance
+
+resources:
+ mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ network_id: { get_param: mgmt_net_id }
+ security_groups: [{ get_param: sec_groups }]
+
+ fixed_ips:
+ - ip_address: { "Fn::Select" : [ { get_param: indx }, { get_param: [{ get_param: mvs_mgmt_ip_0 }] } ] }
+
+ allowed_address_pairs:
+ - ip_address: { get_param: virtual_mgmt_ip_0 }
+
+ boot_volume:
+ type: OS::Cinder::Volume
+ properties:
+ size: 35
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-boot-volume
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+
+ image: { get_param: bootimage }
+
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+
+ data_volume:
+ type: OS::Cinder::Volume
+ properties:
+ size: 265
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-data-volume
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+
+ vnfci:
+ type: OS::Nova::Server
+ properties:
+ name:
+ str_replace:
+ template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM
+ params:
+ $CLOUD_ZONE_ID: { get_param: cloud_zone_id }
+ $VF_NAME: { get_param: vf_name }
+ $VF_INSTANCE_NUM: { get_param: vf_instance_num }
+ $VF_COMPONENT: { get_param: vf_component }
+ $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] }
+ block_device_mapping:
+ - device_name: vda
+ volume_id: { get_resource: boot_volume }
+ delete_on_termination: false
+ - device_name: vdb
+ volume_id: { get_resource: data_volume }
+ delete_on_termination: false
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: mgmt_port }
+
+ availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] }
+
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.vfmodule.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.vfmodule.heat.yaml
new file mode 100644
index 0000000000..95ca069bf8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group_with_dynamic_count/inputs/mvs.vfmodule.heat.yaml
@@ -0,0 +1,105 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Metaswitch MVS (Metaview Server)
+
+parameters:
+ cloud_zone_id:
+ type: string
+ description: The cloud zone for this VF instance
+ vf_name:
+ type: string
+ description: The VF Name; defaults to VMVM for the virtual MVM VNF.
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 4, max: 4 }
+ description: Each VF will have a 4-character alphanumeric identifier
+ vf_instance_num:
+ type: string
+ description: The number for this VF instance
+ constraints:
+ - allowed_pattern: "[0-9]+"
+ - length: { min: 2, max: 2 }
+ description: VF instance number must be a two-digit numeric value
+ vf_component:
+ type: string
+ description: The component that this VF instance is running
+ constraints:
+ - allowed_pattern: "[a-zA-Z0-9]+"
+ - length: { min: 3, max: 3 }
+ description: Each VF component will have a 3-character alphanumeric identifier
+ vm_instance_num:
+ type: comma_delimited_list
+ description: VM instance number list must be a list of three-digit numeric value
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF_MODULE instance
+ bootimage:
+ type: string
+ description: Master bootimage volume id
+ flavor:
+ type: string
+ description: Server flavor
+ constraints:
+ - custom_constraint: nova.flavor
+ key_name:
+ type: string
+ description: SSH key name
+ constraints:
+ - custom_constraint: nova.keypair
+
+ availability_zone_0:
+ type: comma_delimited_list
+ description: List of Availability Zone IDs or Names
+
+ sec_groups:
+ type: comma_delimited_list
+ description: Security groups
+ mgmt_net_id:
+ type: string
+ description: Neutron UUID for the Management network
+ constraints:
+ - custom_constraint: neutron.network
+ virtual_mgmt_ip_0:
+ type: string
+ description: Virtual management network ip address
+
+ mvs_mgmt_ip_0:
+ type: comma_delimited_list
+ description: List of Management network IP addresses for IPv4
+
+ num_instances:
+ type: number
+ description: number of instance of the VF_module
+
+resources:
+ mvs_modules:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: num_instances }
+ resource_def:
+ type: mvs.nested.heat.yaml
+ properties:
+ cloud_zone_id: { get_param: cloud_zone_id }
+ vf_name: { get_param: vf_name }
+ vf_instance_num: { get_param: vf_instance_num }
+ vf_component: { get_param: vf_component }
+ vm_instance_num: { get_param: vm_instance_num }
+ vnf_id: { get_param: vnf_id }
+ vf_module_id: { get_param: vf_module_id }
+ bootimage: { get_param: bootimage }
+ flavor: { get_param: flavor }
+ key_name: { get_param: key_name }
+
+ availability_zone_0: { get_param: availability_zone_0 }
+
+ sec_groups: { get_param: sec_groups }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 }
+
+ mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 }
+
+ indx: "%index%"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..b99ba37305
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,137 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ security_group_name:
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ description: OAM network name
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ requirements:
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ 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/heat/nested/reusenestedfrommultibase/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..ed5854c2fd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,216 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ oam_net_ips:
+ label: OAM network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: OAM network ips
+ entry_schema:
+ type: string
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ pcm_server_names:
+ label: PCRF CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PCRF CM instance
+ entry_schema:
+ type: string
+ pcm_image_name:
+ label: PCRF CM image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ cps_net_ips:
+ label: CPS network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS network ips
+ entry_schema:
+ type: string
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ pcm_volumes:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS Cluman Cinder Volume
+ entry_schema:
+ type: string
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ server_pcm_002:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_image_name:
+ get_input: pcm_image_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ oam_net_gw:
+ get_input: oam_net_gw
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ oam_net_ip:
+ get_input:
+ - oam_net_ips
+ - 0
+ oam_net_mask:
+ get_input: oam_net_mask
+ oam_net_name:
+ get_input: oam_net_name
+ server_pcm_003:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ groups:
+ hot-nimbus-pcm_v0.4_2:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4_2.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_003
+ hot-nimbus-pcm_v0.4:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_002
+ - server_pcm_001 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644
index 0000000000..1b03021742
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
@@ -0,0 +1,207 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ label: CPS network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network ip
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ label: OAM network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ network:
+ get_input: oam_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ server_pcm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ network:
+ get_input: cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested-pcm_v0.1:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - pcm_port_1
+ - server_pcm
+ - pcm_port_0
+ outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: server_pcm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ capabilities:
+ endpoint_server_pcm:
+ - server_pcm
+ - endpoint
+ os_server_pcm:
+ - server_pcm
+ - os
+ host_server_pcm:
+ - server_pcm
+ - host
+ scalable_server_pcm:
+ - server_pcm
+ - scalable
+ binding_server_pcm:
+ - server_pcm
+ - binding
+ attachment_pcm_port_0:
+ - pcm_port_0
+ - attachment
+ attachment_pcm_port_1:
+ - pcm_port_1
+ - attachment
+ requirements:
+ link_pcm_port_0:
+ - pcm_port_0
+ - link
+ link_pcm_port_1:
+ - pcm_port_1
+ - link
+ local_storage_server_pcm:
+ - server_pcm
+ - local_storage \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/MANIFEST.json
new file mode 100644
index 0000000000..6f151c4f36
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/MANIFEST.json
@@ -0,0 +1,23 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },{
+ "file": "nested-pcm_v0.1.yaml",
+ "type": "HEAT"
+ },{
+ "file": "hot-nimbus-pcm_v0.4_2.yaml",
+ "type": "HEAT"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.env
new file mode 100644
index 0000000000..78cc03e2ea
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.env
@@ -0,0 +1,14 @@
+parameters:
+ pcm_server_names: ZRDM1PCRF01PCM001
+ pcm_image_name: rhel2
+ pcm_flavor_name: cps
+ availabilityzone_name: nova
+ cps_net_name: int_pcrf_net_0
+ cps_net_ips: 172.26.16.113
+ cps_net_mask: 255.255.255.0
+ oam_net_name: oam_protected_net_0
+ oam_net_ips: 107.239.64.121
+ oam_net_gw: 107.239.64.1
+ oam_net_mask: 255.255.255.0
+ pcm_volumes: 249cb355-8fdf-4382-9c3c-a2ebe767d45b
+ security_group_name: nimbus_security_group
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.yaml
new file mode 100644
index 0000000000..f7d050790f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4.yaml
@@ -0,0 +1,82 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_names:
+ type: comma_delimited_list
+ label: PCRF CM server names
+ description: name of the PCRF CM instance
+ pcm_image_name:
+ type: string
+ label: PCRF CM image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ips:
+ type: comma_delimited_list
+ label: CPS network ips
+ description: CPS network ips
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ips:
+ type: comma_delimited_list
+ label: OAM network ips
+ description: OAM network ips
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_volumes:
+ type: comma_delimited_list
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ server_pcm_001:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+ oam_net_name: { get_param: oam_net_name }
+ oam_net_ip: { get_param: [oam_net_ips, 0] }
+ oam_net_mask: { get_param: oam_net_mask }
+ oam_net_gw: { get_param: oam_net_gw }
+
+ server_pcm_002:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ pcm_server_name: { get_param: [pcm_server_names, 0] }
+ pcm_image_name: { get_param: pcm_image_name }
+ pcm_flavor_name: { get_param: pcm_flavor_name }
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4_2.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4_2.yaml
new file mode 100644
index 0000000000..72d84b64a4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/hot-nimbus-pcm_v0.4_2.yaml
@@ -0,0 +1,71 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_names:
+ type: comma_delimited_list
+ label: PCRF CM server names
+ description: name of the PCRF CM instance
+ pcm_image_name:
+ type: string
+ label: PCRF CM image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ips:
+ type: comma_delimited_list
+ label: CPS network ips
+ description: CPS network ips
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ips:
+ type: comma_delimited_list
+ label: OAM network ips
+ description: OAM network ips
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_volumes:
+ type: comma_delimited_list
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ server_pcm_003:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/nested-pcm_v0.1.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/nested-pcm_v0.1.yaml
new file mode 100644
index 0000000000..4e12676aa8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/reusenestedfrommultibase/inputs/nested-pcm_v0.1.yaml
@@ -0,0 +1,114 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ pcm_image_name:
+ type: string
+ label: image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ip:
+ type: string
+ label: CPS network ip
+ description: CPS network ip
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ip:
+ type: string
+ label: OAM network ip
+ description: OAM network ip
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_vol:
+ type: string
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ network:
+ type: net
+ script_init:
+ type: OS:INIT
+ server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+
+ server_pcm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: pcm_port_0}
+ - port: { get_resource: pcm_port_1}
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+
+ pcm_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: cps_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ pcm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_name }
+ fixed_ips:
+ - ip_address: { get_param: oam_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ #pcm_vol_attachment:
+ # type: OS::Cinder::VolumeAttachment
+ # properties:
+ # volume_id: { get_param: pcm_vol }
+ # mountpoint: /dev/vdb
+ # instance_uuid: { get_resource: server_pcm }
+outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: { get_resource: server_pcm } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644
index 0000000000..b99ba37305
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml
@@ -0,0 +1,137 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: GlobalSubstitutionTypes
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+ properties:
+ availabilityzone_name:
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ type: string
+ description: PCRF CM image name
+ security_group_name:
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ type: string
+ description: CPS network ip
+ pcm_flavor_name:
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ description: OAM network name
+ attributes:
+ server_pcm_id:
+ type: string
+ description: the pcm nova service id
+ requirements:
+ - link_pcm_port_1:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ - local_storage_server_pcm:
+ capability: tosca.capabilities.Attachment
+ node: tosca.nodes.BlockStorage
+ relationship: tosca.relationships.AttachesTo
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - link_pcm_port_0:
+ capability: tosca.capabilities.network.Linkable
+ node: tosca.nodes.Root
+ relationship: tosca.relationships.network.LinksTo
+ occurrences:
+ - 1
+ - 1
+ capabilities:
+ endpoint_server_pcm:
+ type: tosca.capabilities.Endpoint.Admin
+ occurrences:
+ - 1
+ - UNBOUNDED
+ os_server_pcm:
+ type: tosca.capabilities.OperatingSystem
+ occurrences:
+ - 1
+ - UNBOUNDED
+ host_server_pcm:
+ type: tosca.capabilities.Container
+ valid_source_types:
+ - tosca.nodes.SoftwareComponent
+ occurrences:
+ - 1
+ - UNBOUNDED
+ scalable_server_pcm:
+ type: tosca.capabilities.Scalable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ binding_server_pcm:
+ type: tosca.capabilities.network.Bindable
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_0:
+ type: tosca.capabilities.Attachment
+ occurrences:
+ - 1
+ - UNBOUNDED
+ attachment_pcm_port_1:
+ type: tosca.capabilities.Attachment
+ 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/heat/nested/single/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..dcc2a9abbb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,236 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.compute:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ oam_net_ips:
+ label: OAM network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: OAM network ips
+ default:
+ - 107.239.64.121
+ entry_schema:
+ type: string
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ default: nova
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ default: 107.239.64.1
+ pcm_server_names:
+ label: PCRF CM server names
+ hidden: false
+ immutable: false
+ type: list
+ description: name of the PCRF CM instance
+ default:
+ - ZRDM1PCRF01PCM001
+ entry_schema:
+ type: string
+ pcm_image_name:
+ label: PCRF CM image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ default: rhel2
+ cps_net_ips:
+ label: CPS network ips
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS network ips
+ default:
+ - 172.26.16.113
+ entry_schema:
+ type: string
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ default: nimbus_security_group
+ pcm_volumes:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: list
+ description: CPS Cluman Cinder Volume
+ default:
+ - 249cb355-8fdf-4382-9c3c-a2ebe767d45b
+ entry_schema:
+ type: string
+ compute_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ default: cps
+ net_name:
+ hidden: false
+ immutable: false
+ type: string
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ default: int_pcrf_net_0
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ default: 255.255.255.0
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ default: 255.255.255.0
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ default: oam_protected_net_0
+ node_templates:
+ server_pcm_001:
+ type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ directives:
+ - substitutable
+ properties:
+ availabilityzone_name:
+ get_input: availabilityzone_name
+ oam_net_gw:
+ get_input: oam_net_gw
+ pcm_image_name:
+ get_input: pcm_image_name
+ security_group_name:
+ get_input: security_group_name
+ cps_net_ip:
+ get_input:
+ - cps_net_ips
+ - 0
+ pcm_flavor_name:
+ get_input: pcm_flavor_name
+ service_template_filter:
+ substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+ pcm_vol:
+ get_input:
+ - pcm_volumes
+ - 0
+ pcm_server_name:
+ get_input:
+ - pcm_server_names
+ - 0
+ cps_net_name:
+ get_input: cps_net_name
+ cps_net_mask:
+ get_input: cps_net_mask
+ oam_net_ip:
+ get_input:
+ - oam_net_ips
+ - 0
+ oam_net_mask:
+ get_input: oam_net_mask
+ oam_net_name:
+ get_input: oam_net_name
+ compute_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ network:
+ get_input: net_name
+ server_compute_get_attr_test:
+ type: org.openecomp.resource.vfc.nodes.heat.compute
+ properties:
+ flavor:
+ compute_flavor_name: null
+ image:
+ get_input: compute_image_name
+ config_drive:
+ get_attribute:
+ - compute_port_0
+ - tenant_id
+ - port_security_enabled
+ - device_id
+ - qos_policy
+ - allowed_address_pairs
+ - show
+ - device_owner
+ - network
+ - security_groups
+ - fixed_ips
+ - mac_address
+ - admin_state_up
+ - name
+ - subnets
+ - status
+ user_data_format:
+ get_attribute:
+ - server_pcm_001
+ - oam_net_gw
+ name:
+ compute_name: null
+ groups:
+ hot-nimbus-pcm_v0.4:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/hot-nimbus-pcm_v0.4.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_001
+ - compute_port_0
+ - server_compute_get_attr_test \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
new file mode 100644
index 0000000000..1b03021742
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/expectedoutputfiles/nested-pcm_v0.1ServiceTemplate.yaml
@@ -0,0 +1,207 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: nested-pcm_v0.1
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ availabilityzone_name:
+ label: availabilityzone name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone name
+ oam_net_gw:
+ label: CPS network gateway
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network gateway
+ pcm_image_name:
+ label: image name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM image name
+ security_group_name:
+ label: security group name
+ hidden: false
+ immutable: false
+ type: string
+ description: the name of security group
+ cps_net_ip:
+ label: CPS network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network ip
+ pcm_flavor_name:
+ label: PCRF CM flavor name
+ hidden: false
+ immutable: false
+ type: string
+ description: flavor name of PCRF CM instance
+ pcm_vol:
+ label: CPS Cluman Cinder Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS Cluman Cinder Volume
+ pcm_server_name:
+ label: PCRF CM server name
+ hidden: false
+ immutable: false
+ type: string
+ description: PCRF CM server name
+ cps_net_name:
+ label: CPS network name
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network name
+ cps_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_ip:
+ label: OAM network ip
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network ip
+ oam_net_mask:
+ label: CPS network mask
+ hidden: false
+ immutable: false
+ type: string
+ description: CPS network mask
+ oam_net_name:
+ label: OAM network name
+ hidden: false
+ immutable: false
+ type: string
+ description: OAM network name
+ node_templates:
+ pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ network:
+ get_input: oam_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ server_pcm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ network:
+ get_input: cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ nested-pcm_v0.1:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/nested-pcm_v0.1.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - pcm_port_1
+ - server_pcm
+ - pcm_port_0
+ outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: server_pcm
+ substitution_mappings:
+ node_type: org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1
+ capabilities:
+ endpoint_server_pcm:
+ - server_pcm
+ - endpoint
+ os_server_pcm:
+ - server_pcm
+ - os
+ host_server_pcm:
+ - server_pcm
+ - host
+ scalable_server_pcm:
+ - server_pcm
+ - scalable
+ binding_server_pcm:
+ - server_pcm
+ - binding
+ attachment_pcm_port_0:
+ - pcm_port_0
+ - attachment
+ attachment_pcm_port_1:
+ - pcm_port_1
+ - attachment
+ requirements:
+ link_pcm_port_0:
+ - pcm_port_0
+ - link
+ link_pcm_port_1:
+ - pcm_port_1
+ - link
+ local_storage_server_pcm:
+ - server_pcm
+ - local_storage \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/MANIFEST.json
new file mode 100644
index 0000000000..345ca77b2a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/MANIFEST.json
@@ -0,0 +1,20 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "hot-nimbus-pcm_v0.4.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },{
+ "file": "nested-pcm_v0.1.yaml",
+ "type": "HEAT"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.env
new file mode 100644
index 0000000000..78cc03e2ea
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.env
@@ -0,0 +1,14 @@
+parameters:
+ pcm_server_names: ZRDM1PCRF01PCM001
+ pcm_image_name: rhel2
+ pcm_flavor_name: cps
+ availabilityzone_name: nova
+ cps_net_name: int_pcrf_net_0
+ cps_net_ips: 172.26.16.113
+ cps_net_mask: 255.255.255.0
+ oam_net_name: oam_protected_net_0
+ oam_net_ips: 107.239.64.121
+ oam_net_gw: 107.239.64.1
+ oam_net_mask: 255.255.255.0
+ pcm_volumes: 249cb355-8fdf-4382-9c3c-a2ebe767d45b
+ security_group_name: nimbus_security_group
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.yaml
new file mode 100644
index 0000000000..e4a79f34ba
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/hot-nimbus-pcm_v0.4.yaml
@@ -0,0 +1,94 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_names:
+ type: comma_delimited_list
+ label: PCRF CM server names
+ description: name of the PCRF CM instance
+ pcm_image_name:
+ type: string
+ label: PCRF CM image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ips:
+ type: comma_delimited_list
+ label: CPS network ips
+ description: CPS network ips
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ips:
+ type: comma_delimited_list
+ label: OAM network ips
+ description: OAM network ips
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_volumes:
+ type: comma_delimited_list
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+ compute_image_name:
+ type: string
+ net_name:
+ type: string
+
+resources:
+ server_pcm_001:
+ type: nested-pcm_v0.1.yaml
+ properties:
+ pcm_server_name: { get_param: [pcm_server_names, 0] }
+ pcm_image_name: { get_param: pcm_image_name }
+ pcm_flavor_name: { get_param: pcm_flavor_name }
+ availabilityzone_name: { get_param: availabilityzone_name }
+ security_group_name: { get_param: security_group_name }
+ pcm_vol: { get_param: [pcm_volumes, 0] }
+ cps_net_name: { get_param: cps_net_name }
+ cps_net_ip: { get_param: [cps_net_ips, 0] }
+ cps_net_mask: { get_param: cps_net_mask }
+ oam_net_name: { get_param: oam_net_name }
+ oam_net_ip: { get_param: [oam_net_ips, 0] }
+ oam_net_mask: { get_param: oam_net_mask }
+ oam_net_gw: { get_param: oam_net_gw }
+
+ server_compute_get_attr_test:
+ type: OS::Nova::Server
+ properties:
+ config_drive: {get_attr: [compute_port_0]}
+ name: { compute_name }
+ image: { get_param: compute_image_name }
+ flavor: { compute_flavor_name }
+ user_data_format: { get_attr: [server_pcm_001 , oam_net_gw] }
+ user_data: { get_attr: [server_pcm_001]}
+
+ compute_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: net_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/heat/nested/single/inputs/nested-pcm_v0.1.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/nested-pcm_v0.1.yaml
new file mode 100644
index 0000000000..4e12676aa8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/single/inputs/nested-pcm_v0.1.yaml
@@ -0,0 +1,114 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ pcm_server_name:
+ type: string
+ label: PCRF CM server name
+ description: PCRF CM server name
+ pcm_image_name:
+ type: string
+ label: image name
+ description: PCRF CM image name
+ pcm_flavor_name:
+ type: string
+ label: PCRF CM flavor name
+ description: flavor name of PCRF CM instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+ cps_net_name:
+ type: string
+ label: CPS network name
+ description: CPS network name
+ cps_net_ip:
+ type: string
+ label: CPS network ip
+ description: CPS network ip
+ cps_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ oam_net_name:
+ type: string
+ label: OAM network name
+ description: OAM network name
+ oam_net_ip:
+ type: string
+ label: OAM network ip
+ description: OAM network ip
+ oam_net_gw:
+ type: string
+ label: CPS network gateway
+ description: CPS network gateway
+ oam_net_mask:
+ type: string
+ label: CPS network mask
+ description: CPS network mask
+ pcm_vol:
+ type: string
+ label: CPS Cluman Cinder Volume
+ description: CPS Cluman Cinder Volume
+ security_group_name:
+ type: string
+ label: security group name
+ description: the name of security group
+
+resources:
+ network:
+ type: net
+ script_init:
+ type: OS:INIT
+ server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+
+ server_pcm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: pcm_port_0}
+ - port: { get_resource: pcm_port_1}
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+
+ pcm_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: cps_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ pcm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_name }
+ fixed_ips:
+ - ip_address: { get_param: oam_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ #pcm_vol_attachment:
+ # type: OS::Cinder::VolumeAttachment
+ # properties:
+ # volume_id: { get_param: pcm_vol }
+ # mountpoint: /dev/vdb
+ # instance_uuid: { get_resource: server_pcm }
+outputs:
+ server_pcm_id:
+ description: the pcm nova service id
+ value: { get_resource: server_pcm } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..eac8fd673d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,86 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ node_templates:
+ jsa_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ shared: true
+ network_name:
+ get_input: jsa_net_name
+ jsa_net_test_full_attribute:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_agent_ids:
+ - '1000'
+ - '1001'
+ - '1002'
+ tenant_id: 23456
+ port_security_enabled: true
+ shared: true
+ admin_state_up: false
+ qos_policy: full
+ network_name:
+ get_input: jsa_net_name
+ subnets:
+ jsa_net_test_full_attribute_subnet:
+ cidr:
+ get_input: jsa_cidr
+ value_specs:
+ key1: spec1
+ key2: spec2
+ groups:
+ outputs:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/outputs.yaml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - jsa_net
+ - jsa_net_test_full_attribute
+ outputs:
+ output_regular:
+ description: output_regula
+ value: regular
+ output_func_getParam:
+ description: output_func_getParam
+ value:
+ get_input: jsa_cidr
+ output_func_getAttr:
+ description: output_func_getAttr
+ value:
+ get_attribute:
+ - jsa_net_test_full_attribute
+ - network_name
+ output_func_getResource:
+ description: output_func_getResource
+ value: jsa_net_test_full_attribute \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/MANIFEST.json
new file mode 100644
index 0000000000..3997ee80ff
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/MANIFEST.json
@@ -0,0 +1,11 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "outputs.yaml",
+ "type": "HEAT"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/outputs.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/outputs.yaml
new file mode 100644
index 0000000000..8d48c82e65
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/outputs/inputs/outputs.yaml
@@ -0,0 +1,48 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+outputs:
+ output_regular:
+ description: output_regula
+ value: regular
+ output_func_getParam:
+ description: output_func_getParam
+ value: {get_param: jsa_cidr}
+ output_func_getAttr:
+ description: output_func_getAttr
+ value: {get_attr: [jsa_net_test_full_attribute, name]}
+ output_func_getResource:
+ description: output_func_getResource
+ value: {get_resource: jsa_net_test_full_attribute_subnet}
+
+resources:
+ jsa_net:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_param: jsa_net_name}
+ shared: True
+
+ jsa_net_test_full_attribute:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_param: jsa_net_name}
+ shared: True
+ dhcp_agent_ids: ['1000','1001','1002']
+ tenant_id: 23456
+ port_security_enabled: t
+ admin_state_up: 0
+ qos_policy: full
+ value_specs:
+ key1: "spec1"
+ key2: "spec2"
+
+ jsa_net_test_full_attribute_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: {get_resource: jsa_net_test_full_attribute}
+ cidr: {get_param: jsa_cidr}
+
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..5cd5d0e597
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,181 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ param_type_comma_delimited_list:
+ hidden: false
+ immutable: false
+ type: list
+ description: param comma_delimited_list - List
+ entry_schema:
+ type: string
+ param_type_string_default_value_with_env:
+ hidden: false
+ immutable: false
+ type: string
+ description: param value should be - HEAT_ENV_default string
+ default: HEAT_ENV default string
+ volume_type:
+ label: FSB Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB Volume type
+ FSB1_volume_name:
+ label: FSB Volume
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB Volume name
+ param_constraint_length_allowed_pattern_range_hidden:
+ label: User Name
+ hidden: true
+ immutable: false
+ type: string
+ description: User name to be configured for the application
+ constraints:
+ - max_length: 8
+ - min_length: 6
+ - pattern: '[A-Z]+[a-zA-Z0-9]*'
+ - in_range:
+ - 0
+ - 10
+ param_type_boolean_default_value_with_env:
+ hidden: false
+ immutable: false
+ type: boolean
+ description: param value should be false
+ default: false
+ param_type_string:
+ hidden: false
+ immutable: false
+ type: string
+ description: param String - string
+ param_type_string_default_value:
+ hidden: false
+ immutable: false
+ type: string
+ description: param value should be - HEAT_default string
+ default: HEAT_default string
+ param_type_number:
+ hidden: false
+ immutable: false
+ type: float
+ description: param number - float
+ param_type_boolean:
+ hidden: false
+ immutable: false
+ type: boolean
+ description: param boolean - boolean
+ param_type_comma_delimited_list_default_value_with_env:
+ hidden: false
+ immutable: false
+ type: list
+ description: param value should be [b1,b2,b3,b4]
+ default:
+ - b1
+ - b2
+ - b3
+ - b4
+ entry_schema:
+ type: string
+ param_type_boolean_default_value:
+ hidden: false
+ immutable: false
+ type: boolean
+ description: param value should be true
+ default: true
+ param_type_number_default_value:
+ hidden: false
+ immutable: false
+ type: float
+ description: param value should be 12345
+ default: 12345
+ FSB_1_image:
+ label: FSB Image
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB Image name
+ param_type_comma_delimited_list_default_value:
+ hidden: false
+ immutable: false
+ type: list
+ description: param value should be [a1,a2,a3,a4]
+ default:
+ - a1
+ - a2
+ - a3
+ - a4
+ entry_schema:
+ type: string
+ param_type_number_default_value_with_env:
+ hidden: false
+ immutable: false
+ type: float
+ description: param value should be 54321
+ default: 54321
+ param_type_json:
+ hidden: false
+ immutable: false
+ type: json
+ description: param json - map<String>
+ param_allowed_values:
+ label: Instance Type
+ hidden: false
+ immutable: false
+ type: string
+ description: Instance type for compute instances
+ constraints:
+ - valid_values:
+ - m1.small
+ - m1.medium
+ - m1.large
+ node_templates:
+ FSB1_volume:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ image:
+ get_input: FSB_1_image
+ volume_type:
+ get_input: volume_type
+ size: 3*1024
+ name:
+ get_input: FSB1_volume_name
+ groups:
+ parameters:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/parameters.yaml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - FSB1_volume \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/MANIFEST.json
new file mode 100644
index 0000000000..bc0e397432
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "parameters.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "parameters.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.env
new file mode 100644
index 0000000000..21978f2482
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.env
@@ -0,0 +1,6 @@
+parameters:
+ param_type_string_default_value_with_env: HEAT_ENV default string
+ param_type_number_default_value_with_env: 54321
+ param_type_boolean_default_value_with_env: false
+ param_type_comma_delimited_list_default_value_with_env: b1,b2,b3,b4
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.yaml
new file mode 100644
index 0000000000..6f1b69ac59
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/parameters/inputs/parameters.yaml
@@ -0,0 +1,101 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ param_type_string:
+ type: string
+ description: param String - string
+ param_type_number:
+ type: number
+ description: param number - float
+ param_type_json:
+ type: json
+ description: param json - map<String>
+ param_type_boolean:
+ type: boolean
+ description: param boolean - boolean
+ param_type_comma_delimited_list:
+ type: comma_delimited_list
+ description: param comma_delimited_list - List
+
+ volume_type:
+ type: string
+ label: FSB Volume
+ description: FSB Volume type
+
+ FSB1_volume_name:
+ type: string
+ label: FSB Volume
+ description: FSB Volume name
+
+ FSB_1_image:
+ type: string
+ label: FSB Image
+ description: FSB Image name
+
+ param_constraint_length_allowed_pattern_range_hidden:
+ type: string
+ label: User Name
+ description: User name to be configured for the application
+ hidden: true
+ constraints:
+ - length: { min: 6, max: 8 }
+ description: User name must be between 6 and 8 characters
+ - allowed_pattern: "[A-Z]+[a-zA-Z0-9]*"
+ description: User name must start with an uppercase character
+ - range: { min: 0, max: 10 }
+ param_allowed_values:
+ type: string
+ label: Instance Type
+ description: Instance type for compute instances
+ constraints:
+ - allowed_values:
+ - m1.small
+ - m1.medium
+ - m1.large
+
+ param_type_string_default_value:
+ type: string
+ default: HEAT_default string
+ description: param value should be - HEAT_default string
+ param_type_string_default_value_with_env:
+ type: string
+ description: param value should be - HEAT_ENV_default string
+ default: HEAT_default string
+
+ param_type_number_default_value:
+ type: number
+ description: param value should be 12345
+ default: 12345
+ param_type_number_default_value_with_env:
+ type: number
+ description: param value should be 54321
+ default: 12345
+ param_type_boolean_default_value:
+ type: boolean
+ description: param value should be true
+ default: true
+ param_type_boolean_default_value_with_env:
+ type: boolean
+ description: param value should be false
+ default: true
+ param_type_comma_delimited_list_default_value:
+ type: comma_delimited_list
+ description: param value should be [a1,a2,a3,a4]
+ default: a1,a2,a3,a4
+ param_type_comma_delimited_list_default_value_with_env:
+ type: comma_delimited_list
+ description: param value should be [b1,b2,b3,b4]
+ default: a1,a2,a3,a4
+resources:
+ FSB1_volume:
+ type: OS::Cinder::Volume
+ properties:
+ size: 3
+ volume_type: {get_param: volume_type}
+ name: {get_param: FSB1_volume_name}
+ image: {get_param: FSB_1_image}
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..0d9ec35ce7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,197 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ start_src_ports:
+ hidden: false
+ immutable: false
+ type: float
+ description: Start of src port
+ private_net_1_gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: Private network gateway address
+ private_net_2_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of private network to be created
+ private_net_2_gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: Private network gateway address
+ policy_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Virtual network id
+ private_net_1_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of private network to be created
+ private_net_2_pool_start:
+ hidden: false
+ immutable: false
+ type: string
+ description: Start of private network IP address allocation pool
+ private_net_2_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: Private network address (CIDR notation)
+ private_net_1_pool_end:
+ hidden: false
+ immutable: false
+ type: string
+ description: End of private network IP address allocation pool
+ end_src_ports:
+ hidden: false
+ immutable: false
+ type: float
+ description: End of src port
+ apply_service:
+ hidden: false
+ immutable: false
+ type: string
+ description: service to apply
+ start_dst_ports:
+ hidden: false
+ immutable: false
+ type: float
+ description: Start of dst port
+ end_dst_ports:
+ hidden: false
+ immutable: false
+ type: float
+ description: End of dst port
+ private_net_1_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: Private network address (CIDR notation)
+ private_net_1_pool_start:
+ hidden: false
+ immutable: false
+ type: string
+ description: Start of private network IP address allocation pool
+ private_net_2_pool_end:
+ hidden: false
+ immutable: false
+ type: string
+ description: End of private network IP address allocation pool
+ direction:
+ hidden: false
+ immutable: false
+ type: string
+ description: Direction of Policy
+ node_templates:
+ private_net_1:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: private_net_1_name
+ subnets:
+ private_subnet_1:
+ cidr:
+ get_input: private_net_1_cidr
+ gateway_ip:
+ get_input: private_net_1_gateway
+ allocation_pools:
+ - start:
+ get_input: private_net_1_pool_start
+ end:
+ get_input: private_net_1_pool_end
+ private_policy:
+ type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
+ properties:
+ entries:
+ policy_rule:
+ - src_ports:
+ - start_port:
+ get_input: start_src_ports
+ end_port:
+ get_input: end_src_ports
+ protocol: any
+ action_list:
+ apply_service:
+ - get_input: apply_service
+ dst_addresses:
+ - virtual_network: private_net_1
+ dst_ports:
+ - start_port:
+ get_input: start_dst_ports
+ end_port:
+ get_input: end_dst_ports
+ src_addresses:
+ - virtual_network: private_net_2
+ direction:
+ get_input: direction
+ name:
+ get_input: policy_name
+ requirements:
+ - network:
+ capability: tosca.capabilities.Attachment
+ node: private_net_1
+ relationship: org.openecomp.relationships.AttachesTo
+ - network:
+ capability: tosca.capabilities.Attachment
+ node: private_net_2
+ relationship: org.openecomp.relationships.AttachesTo
+ private_net_2:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ network_name:
+ get_input: private_net_2_name
+ subnets:
+ private_subnet_2:
+ cidr:
+ get_input: private_net_2_cidr
+ gateway_ip:
+ get_input: private_net_2_gateway
+ allocation_pools:
+ - start:
+ get_input: private_net_2_pool_start
+ end:
+ get_input: private_net_2_pool_end
+ groups:
+ network_policy_chain:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/network_policy_chain.yaml
+ description: |
+ HOT template to creates two virtual network with one subnet each. Creates a network policy for applying service between two VNs created before. Attach the network policy to two virtual networks
+ members:
+ - private_net_1
+ - private_policy
+ - private_net_2 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/MANIFEST.json
new file mode 100644
index 0000000000..81b11d1a77
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/MANIFEST.json
@@ -0,0 +1,12 @@
+{
+ "name": "network_policy_chain",
+ "description": "network_policy_chain",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "network_policy_chain.yaml",
+ "type": "HEAT",
+ "data": []
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/network_policy_chain.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/network_policy_chain.yaml
new file mode 100644
index 0000000000..8963b1ff75
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_Network_Rule/inputs/network_policy_chain.yaml
@@ -0,0 +1,117 @@
+heat_template_version: 2013-05-23
+
+description: >
+ HOT template to creates two virtual network with one subnet each.
+ Creates a network policy for applying service between two VNs created before.
+ Attach the network policy to two virtual networks
+parameters:
+ policy_name:
+ type: string
+ description: Virtual network id
+ direction:
+ type: string
+ description: Direction of Policy
+ start_src_ports:
+ type: number
+ description: Start of src port
+ end_src_ports:
+ type: number
+ description: End of src port
+ start_dst_ports:
+ type: number
+ description: Start of dst port
+ end_dst_ports:
+ type: number
+ description: End of dst port
+ apply_service:
+ type: string
+ description: service to apply
+ private_net_1_name:
+ type: string
+ description: Name of private network to be created
+ private_net_1_cidr:
+ type: string
+ description: Private network address (CIDR notation)
+ private_net_1_gateway:
+ type: string
+ description: Private network gateway address
+ private_net_1_pool_start:
+ type: string
+ description: Start of private network IP address allocation pool
+ private_net_1_pool_end:
+ type: string
+ description: End of private network IP address allocation pool
+ private_net_2_name:
+ type: string
+ description: Name of private network to be created
+ private_net_2_cidr:
+ type: string
+ description: Private network address (CIDR notation)
+ private_net_2_gateway:
+ type: string
+ description: Private network gateway address
+ private_net_2_pool_start:
+ type: string
+ description: Start of private network IP address allocation pool
+ private_net_2_pool_end:
+ type: string
+ description: End of private network IP address allocation pool
+
+resources:
+ private_net_1:
+ type: OS::Neutron::Net
+ properties:
+ name: { get_param: private_net_1_name }
+
+ private_net_2:
+ type: OS::Neutron::Net
+ properties:
+ name: { get_param: private_net_2_name }
+
+ private_subnet_1:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: private_net_1 }
+ cidr: { get_param: private_net_1_cidr }
+ gateway_ip: { get_param: private_net_1_gateway }
+ allocation_pools:
+ - start: { get_param: private_net_1_pool_start }
+ end: { get_param: private_net_1_pool_end }
+
+ private_subnet_2:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: private_net_2 }
+ cidr: { get_param: private_net_2_cidr }
+ gateway_ip: { get_param: private_net_2_gateway }
+ allocation_pools:
+ - start: { get_param: private_net_2_pool_start }
+ end: { get_param: private_net_2_pool_end }
+
+ private_policy:
+ type: OS::Contrail::NetworkPolicy
+ properties:
+ name: { get_param: policy_name }
+ entries:
+ policy_rule: [
+ {
+ "direction": { get_param: direction },
+ "protocol": "any",
+ "src_ports": [{"start_port": {get_param: start_src_ports}, "end_port": {get_param: end_src_ports}}],
+ "dst_ports": [{"start_port": {get_param: start_dst_ports}, "end_port": {get_param: end_dst_ports}}],
+ "dst_addresses": [{ "virtual_network": {get_resource: private_net_1}}],
+ "action_list": {"apply_service": [{get_param: apply_service}]},
+ "src_addresses": [{ "virtual_network": {get_resource: private_net_2}}]
+ },
+ ]
+ private_policy_attach_net1:
+ type: OS::Contrail::AttachPolicy
+ properties:
+ network: { get_resource: private_net_1 }
+ policy: { get_attr: [private_policy, fq_name] }
+
+ private_policy_attach_net2:
+ type: OS::Contrail::AttachPolicy
+ properties:
+ network: { get_resource: private_net_2 }
+ policy: { get_attr: [private_policy, fq_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/heat/resources/OS_Contrail_VirtualNetwork/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..2b047dd8ae
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,1308 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.NCB1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ org.openecomp.resource.vfc.nodes.heat.GPB2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ org.openecomp.resource.vfc.nodes.heat.NCB2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ org.openecomp.resource.vfc.nodes.heat.GPB1:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ org.openecomp.resource.vfc.nodes.heat.FSB2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ org.openecomp.resource.vfc.nodes.heat.VLC1:
+ 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
+ org.openecomp.resource.vfc.nodes.heat.VLC2:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ Internal2_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: Internal2-subnet
+ vlc2-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to vlc2-Internal2
+ default: 00:81:37:0E:02:12
+ epc-sctp-a-net-rt:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-a route target
+ default: 13979:105717
+ epc-sctp-b-net-rt:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-b route target
+ default: 13979:105719
+ gpb-flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor to use for servers gpb
+ default: m4.xlarge4
+ Internal1_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.0/17
+ epc-sctp-a-pool-start:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-a-net network ip pool start IP address
+ default: 107.243.37.3
+ Internal2_subnet_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: vmme_int_int_sub_2
+ Internal1_subnet_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: vmme_int_int_sub_1
+ gpb1-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to gpb1-Internal1
+ default: 00:80:37:0E:01:22
+ gpb1-Internal1-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.254.0.101
+ FSB_1_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: image name
+ fsb1-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to fsb1-Internal2
+ default: 00:81:37:0E:0B:12
+ ncb_zone:
+ hidden: false
+ immutable: false
+ type: string
+ description: cluster for spawnning ncb instances
+ default: nova
+ Internal2_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: vmme_int_int_2
+ epc-sctp-a-pool-end:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-a-net network ip pool end IP address
+ default: 107.243.37.30
+ Internal1_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: Internal1-subnet
+ gpb2-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of gpb2
+ default: ZRDM1MMEX33GPB002
+ fsb2-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to fsb2-Internal1
+ default: 00:80:37:0E:0D:12
+ fsb2-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of fsb1
+ default: ZRDM1MMEX33FSB002
+ static_prefix_sctp_b_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Static Prefix
+ default: 107.239.40.64/30
+ fsb2-oam-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.250.172.222
+ fsb2-flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor to use for servers fsb2
+ default: m4.xlarge4
+ fsb2-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to fsb2-Internal2
+ default: 00:81:37:0E:0D:12
+ ncb2-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to ncb2-Internal1
+ default: 00:80:37:0E:0F:12
+ ncb2-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of ncb2
+ default: ZRDM1MMEX33NCB002
+ epc-sctp-b-pool-end:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-b-net network ip pool end IP address
+ default: 107.243.37.62
+ vlc1-gtp-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.243.37.67
+ epc-sctp-b-pool-start:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-b-net network ip pool start IP address
+ default: 107.243.37.35
+ my_instance:
+ hidden: false
+ immutable: false
+ type: string
+ description: instance
+ Internal2_shared:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal1_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: vmme_int_int_1
+ vlc2-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of vlc2
+ default: ZRDM1MMEX33VLC002
+ Internal2_ipam_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: vmme_ipam_int2
+ vlc1-sctp-b-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.243.37.35
+ Internal1_net_pool_end:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.254
+ Internal1_default_gateway:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.3
+ ncb1-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to ncb1-Internal1
+ default: 00:80:37:0E:09:12
+ epc-gtp-net-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: gtp net name
+ default: EPC-GTP
+ vlc1-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to vlc1-Internal1
+ default: 00:80:37:0E:01:12
+ gpb2-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to gpb2-Internal1
+ default: 00:80:37:0E:02:22
+ epc-gtp-net-cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: gtp stubnet
+ default: 107.243.37.64/27
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: uuid of oam network
+ default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ vlc_zone:
+ hidden: false
+ immutable: false
+ type: string
+ description: cluster for spawnning vlc instances
+ default: nova
+ vlc2-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to vlc2-Internal1
+ default: 00:80:37:0E:02:12
+ epc-sctp-a-net-cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-a subnet
+ default: 107.243.37.0/27
+ Internal1_forwarding_mode:
+ hidden: false
+ immutable: false
+ type: string
+ default: l2
+ Internal2_dhcp:
+ hidden: false
+ immutable: false
+ type: boolean
+ default: false
+ fsb1-oam-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.250.172.221
+ FSB_2_image:
+ hidden: false
+ immutable: false
+ type: string
+ description: image name
+ vlc1-oam-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.250.172.227
+ epc-sctp-a-net-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-a net name
+ default: EPC-SCTP-A
+ vlc2-oam-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.250.172.228
+ Internal2_net_pool_start:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.100
+ FSB1_volume_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: volume name
+ vlc1-sctp-a-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.243.37.3
+ Internal1_ipam_name:
+ hidden: false
+ immutable: false
+ type: string
+ default: vmme_ipam_int1
+ Internal1_dhcp:
+ hidden: false
+ immutable: false
+ type: boolean
+ default: false
+ Internal2_external:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ Internal2_forwarding_mode:
+ hidden: false
+ immutable: false
+ type: string
+ default: l2
+ vlc1-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of vlc1
+ default: ZRDM1MMEX33VLC002
+ vlc-flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor to use for servers vlc
+ default: m4.xlarge4
+ epc-gtp-net-rt:
+ hidden: false
+ immutable: false
+ type: string
+ description: gtp route target
+ default: 13979:105715
+ gpb_zone:
+ hidden: false
+ immutable: false
+ type: string
+ description: cluster for spawnning gpb instances
+ default: nova
+ Internal1-net:
+ hidden: false
+ immutable: false
+ type: string
+ description: net
+ gpb1-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to gpb1-Internal2
+ default: 00:81:37:0E:01:22
+ fsb1-Internal1-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to fsb1-Internal1
+ default: 00:80:37:0E:0B:12
+ FSB2_volume_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: volume name
+ VMME_FSB2_boot_volume:
+ hidden: false
+ immutable: false
+ type: string
+ default: 089a0d11-4b15-4370-8343-3f90907b1221
+ fsb_zone:
+ hidden: false
+ immutable: false
+ type: string
+ description: cluster for spawnning fsb instances
+ default: nova
+ VMME_FSB1_boot_volume:
+ hidden: false
+ immutable: false
+ type: string
+ default: 8248e794-6173-4b49-b9c3-8219b0b56f4e
+ Internal2_default_gateway:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.3
+ Internal1_external:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ vlc2-sctp-a-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.243.37.4
+ ncb-flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor to use for servers ncb
+ default: m4.xlarge4
+ Internal1_shared:
+ hidden: false
+ immutable: false
+ type: string
+ default: 'False'
+ fsb1-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of fsb1
+ default: ZRDM1MMEX33FSB001
+ static_prefix_gtp_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Static Prefix
+ default: 107.239.40.96/30
+ epc-sctp-b-net-gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-b-net network gateway
+ default: 107.243.37.33
+ epc-sctp-b-net-cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-b subnet
+ default: 107.243.37.32/24
+ epc-gtp-pool-end:
+ hidden: false
+ immutable: false
+ type: string
+ description: gtp network ip pool end IP address
+ default: 107.243.37.94
+ epc-sctp-a-net-gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-a-net network gateway
+ default: 107.243.37.1
+ vlc2-gtp-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.243.37.68
+ vlc2-sctp-b-ip:
+ hidden: false
+ immutable: false
+ type: string
+ default: 107.243.37.36
+ Internal1_net_pool_start:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.253.0.100
+ volume_size:
+ hidden: false
+ immutable: false
+ type: string
+ description: volume
+ fsb2-image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of image to use for server fsb2
+ default: MME_FSB2_15B-CP04-r5a01
+ ncb2-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to ncb2-Internal2
+ default: 00:81:37:0E:0F:12
+ ncb1-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of ncb1
+ default: ZRDM1MMEX33NCB001
+ fsb1-image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of image to use for server fsb1
+ default: MME_FSB1_15B-CP04-r5a01
+ fsb1-flavor:
+ hidden: false
+ immutable: false
+ type: string
+ description: Flavor to use for servers fsb1
+ default: m4.xlarge4
+ volume_type:
+ hidden: false
+ immutable: false
+ type: string
+ description: volume
+ Internal2_net_pool_end:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.254
+ epc-sctp-b-net-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: epc-sctp-b net name
+ default: EPC-SCTP-B
+ Internal2_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ default: 169.255.0.0/17
+ epc-gtp-net-gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: gtp network gateway
+ default: 107.243.37.65
+ gpb2-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to gpb2-Internal2
+ default: 00:81:37:0E:02:22
+ ncb1-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to ncb1-Internal2
+ default: 00:81:37:0E:09:12
+ epc-gtp-pool-start:
+ hidden: false
+ immutable: false
+ type: string
+ description: gtp network ip pool start IP address
+ default: 107.243.37.67
+ static_prefix_sctp_a_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Static Prefix
+ default: 107.239.40.32/30
+ gpb1-name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of gpb1
+ default: ZRDM1MMEX33GPB001
+ pxe-image:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of image to use for server ncb
+ default: MME_PXE-BOOT_cxp9025898_2r5a01.qcow2
+ vlc1-Internal2-mac:
+ hidden: false
+ immutable: false
+ type: string
+ description: static mac address assigned to vlc1-Internal2
+ default: 00:81:37:0E:01:12
+ node_templates:
+ NCB1:
+ type: org.openecomp.resource.vfc.nodes.heat.NCB1
+ properties:
+ flavor:
+ get_input: ncb-flavor
+ availability_zone:
+ get_input: ncb_zone
+ image:
+ get_input: pxe-image
+ name:
+ get_input: ncb1-name
+ NCB2:
+ type: org.openecomp.resource.vfc.nodes.heat.NCB2
+ properties:
+ flavor:
+ get_input: ncb-flavor
+ availability_zone:
+ get_input: ncb_zone
+ image:
+ get_input: pxe-image
+ name:
+ get_input: ncb2-name
+ VLC2_OAM:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc2-oam-ip
+ network:
+ get_input: oam_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ epc-gtp-net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ route_targets:
+ - get_input: epc-gtp-net-rt
+ network_name:
+ get_input: epc-gtp-net-name
+ subnets:
+ epc-gtp-subnet:
+ cidr:
+ get_input: epc-gtp-net-cidr
+ gateway_ip:
+ get_input: epc-gtp-net-gateway
+ allocation_pools:
+ - start:
+ get_input: epc-gtp-pool-start
+ end:
+ get_input: epc-gtp-pool-end
+ NCB1_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: ncb1-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ VLC2_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: vlc2-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ NCB1_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: ncb1-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB1
+ relationship: tosca.relationships.network.BindsTo
+ VLC2_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: vlc2-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ VLC2_GTP:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc2-gtp-ip
+ network: epc-gtp-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: epc-gtp-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ FSB1_volume:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ image:
+ get_input: FSB_1_image
+ volume_type:
+ get_input: volume_type
+ size: 3*1024
+ name:
+ get_input: FSB1_volume_name
+ testConvertGetParamFunctions:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ shared:
+ get_input: Internal1_shared
+ forwarding_mode:
+ get_input: Internal1_forwarding_mode
+ external:
+ get_input:
+ - my_instance
+ - networks
+ - private
+ - 0
+ network_name:
+ get_input: Internal1_net_name
+ FSB2_volume:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ image:
+ get_input: FSB_2_image
+ volume_type:
+ get_input: volume_type
+ size: '(get_input : volume_size) * 1024'
+ name:
+ get_input: FSB2_volume_name
+ FSB1_OAM:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: fsb1-oam-ip
+ network:
+ get_input: oam_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ Internal1-net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ dhcp_enabled:
+ get_input: Internal1_dhcp
+ shared:
+ get_input: Internal1_shared
+ forwarding_mode:
+ get_input: Internal1_forwarding_mode
+ external: true
+ route_targets:
+ get_artifact:
+ - SELF
+ - nimbus-ethernet
+ network_name:
+ get_input: Internal1_net_name
+ subnets:
+ Internal3-subnet:
+ enable_dhcp:
+ get_input: Internal2_dhcp
+ cidr:
+ get_input: Internal2_cidr
+ gateway_ip:
+ get_input: Internal2_default_gateway
+ Internal1-subnet:
+ enable_dhcp:
+ get_input: Internal1_dhcp
+ cidr:
+ get_input: Internal1_cidr
+ gateway_ip:
+ get_input: Internal1_default_gateway
+ Internal4-subnet:
+ enable_dhcp: false
+ cidr:
+ get_input: Internal1_cidr
+ gateway_ip:
+ get_input: Internal1_default_gateway
+ artifacts:
+ nimbus-ethernet:
+ type: tosca.artifacts.Deployment
+ file: ../Artifacts/nimbus-ethernet.sh
+ GPB2_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: gpb2-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ GPB2_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: gpb2-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB2
+ relationship: tosca.relationships.network.BindsTo
+ testConvertGetAttributeFunctions:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ shared:
+ get_input: Internal1_shared
+ forwarding_mode:
+ get_input: Internal1_forwarding_mode
+ external:
+ get_input: Internal1_external
+ network_name:
+ get_input: Internal1_net_name
+ NCB2_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: ncb2-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ NCB2_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: ncb2-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: NCB2
+ relationship: tosca.relationships.network.BindsTo
+ FSB2:
+ type: org.openecomp.resource.vfc.nodes.heat.FSB2
+ properties:
+ flavor:
+ get_input: fsb2-flavor
+ availability_zone:
+ get_input: fsb_zone
+ name:
+ get_input: fsb2-name
+ FSB1:
+ type: org.openecomp.resource.vfc.nodes.heat.FSB1
+ properties:
+ flavor:
+ get_input: fsb1-flavor
+ availability_zone:
+ get_input: fsb_zone
+ name:
+ get_input: fsb1-name
+ Internal2-net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ dhcp_enabled:
+ get_input: Internal2_dhcp
+ shared:
+ get_input: Internal2_shared
+ forwarding_mode:
+ get_input: Internal2_forwarding_mode
+ external:
+ get_input: Internal2_external
+ network_name:
+ get_input: Internal2_name
+ subnets:
+ Internal2-subnet:
+ enable_dhcp:
+ get_input: Internal2_dhcp
+ cidr:
+ get_input: Internal2_cidr
+ gateway_ip:
+ get_input: Internal2_default_gateway
+ VLC1_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: vlc1-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ epc-sctp-a-net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ route_targets:
+ - get_input: epc-sctp-a-net-rt
+ network_name:
+ get_input: epc-sctp-a-net-name
+ subnets:
+ epc-sctp-a-subnet:
+ cidr:
+ get_input: epc-sctp-a-net-cidr
+ gateway_ip:
+ get_input: epc-sctp-a-net-gateway
+ allocation_pools:
+ - start:
+ get_input: epc-sctp-a-pool-start
+ end:
+ get_input: epc-sctp-a-pool-end
+ VLC1_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: vlc1-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ VLC1_SCTP_B:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc1-sctp-b-ip
+ network: epc-sctp-b-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: epc-sctp-b-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ VLC2_SCTP_B:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc2-sctp-b-ip
+ network: epc-sctp-b-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: epc-sctp-b-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ VLC1_SCTP_A:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc1-sctp-a-ip
+ network: epc-sctp-a-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: epc-sctp-a-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ VLC2_SCTP_A:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc2-sctp-a-ip
+ network: epc-sctp-a-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: epc-sctp-a-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC2
+ relationship: tosca.relationships.network.BindsTo
+ VLC1:
+ type: org.openecomp.resource.vfc.nodes.heat.VLC1
+ properties:
+ flavor:
+ get_input: vlc-flavor
+ availability_zone:
+ get_input: vlc_zone
+ image:
+ get_input: pxe-image
+ name:
+ get_input: vlc1-name
+ FSB1_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: fsb1-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ VLC2:
+ type: org.openecomp.resource.vfc.nodes.heat.VLC2
+ properties:
+ flavor:
+ get_input: vlc-flavor
+ availability_zone:
+ get_input: vlc_zone
+ image:
+ get_input: pxe-image
+ name:
+ get_input: vlc2-name
+ FSB1_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: fsb1-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ FSB2_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: fsb2-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ FSB2_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: fsb2-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ VLC1_OAM:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc1-oam-ip
+ network:
+ get_input: oam_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ epc-sctp-b-net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ route_targets:
+ - get_input: epc-sctp-b-net-rt
+ network_name:
+ get_input: epc-sctp-b-net-name
+ subnets:
+ epc-sctp-b-subnet:
+ cidr:
+ get_input: epc-sctp-b-net-cidr
+ gateway_ip:
+ get_input: epc-sctp-b-net-gateway
+ allocation_pools:
+ - start:
+ get_input: epc-sctp-b-pool-start
+ end:
+ get_input: epc-sctp-b-pool-end
+ GPB2:
+ type: org.openecomp.resource.vfc.nodes.heat.GPB2
+ properties:
+ flavor:
+ get_input: gpb-flavor
+ availability_zone:
+ get_input: gpb_zone
+ image:
+ get_input: pxe-image
+ name:
+ get_input: gpb2-name
+ GPB1:
+ type: org.openecomp.resource.vfc.nodes.heat.GPB1
+ properties:
+ flavor:
+ get_input: gpb-flavor
+ availability_zone:
+ get_input: gpb_zone
+ image:
+ get_input: pxe-image
+ name:
+ get_input: gpb1-name
+ VLC1_GTP:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: vlc1-gtp-ip
+ network: epc-gtp-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: epc-gtp-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: VLC1
+ relationship: tosca.relationships.network.BindsTo
+ FSB2_OAM:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: fsb2-oam-ip
+ network:
+ get_input: oam_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB2
+ relationship: tosca.relationships.network.BindsTo
+ GPB1_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: gpb1-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ GPB1_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: gpb1-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: GPB1
+ relationship: tosca.relationships.network.BindsTo
+ groups:
+ vmme_small:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/vmme_small.yml
+ description: |
+ HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+ members:
+ - NCB1
+ - NCB2
+ - VLC2_OAM
+ - epc-gtp-net
+ - NCB1_Internal1
+ - VLC2_Internal2
+ - NCB1_Internal2
+ - VLC2_Internal1
+ - VLC2_GTP
+ - FSB1_volume
+ - testConvertGetParamFunctions
+ - FSB2_volume
+ - FSB1_OAM
+ - Internal1-net
+ - GPB2_Internal1
+ - GPB2_Internal2
+ - testConvertGetAttributeFunctions
+ - NCB2_Internal2
+ - NCB2_Internal1
+ - FSB2
+ - FSB1
+ - Internal2-net
+ - VLC1_Internal1
+ - epc-sctp-a-net
+ - VLC1_Internal2
+ - VLC1_SCTP_B
+ - VLC2_SCTP_B
+ - VLC1_SCTP_A
+ - VLC2_SCTP_A
+ - VLC1
+ - FSB1_Internal2
+ - VLC2
+ - FSB1_Internal1
+ - FSB2_Internal2
+ - FSB2_Internal1
+ - VLC1_OAM
+ - epc-sctp-b-net
+ - GPB2
+ - GPB1
+ - VLC1_GTP
+ - FSB2_OAM
+ - GPB1_Internal2
+ - GPB1_Internal1 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/MANIFEST.json
new file mode 100644
index 0000000000..9b0de07788
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/MANIFEST.json
@@ -0,0 +1,21 @@
+{
+ "name": "vMME_Small",
+ "description": "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "vmme_small.yml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "vmme_small.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "nimbus-ethernet.sh",
+ "type": "OTHER"
+ }
+ ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/nimbus-ethernet.sh b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/nimbus-ethernet.sh
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/nimbus-ethernet.sh
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.env
new file mode 100644
index 0000000000..e46cfd2a2d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.env
@@ -0,0 +1,97 @@
+parameters:
+ oam_net_id: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+ fsb1-name: ZRDM1MMEX33FSB001
+ fsb2-name: ZRDM1MMEX33FSB002
+ ncb1-name: ZRDM1MMEX33NCB001
+ ncb2-name: ZRDM1MMEX33NCB002
+ vlc1-name: ZRDM1MMEX33VLC002
+ vlc2-name: ZRDM1MMEX33VLC002
+ gpb1-name: ZRDM1MMEX33GPB001
+ gpb2-name: ZRDM1MMEX33GPB002
+ epc-sctp-a-net-name: EPC-SCTP-A
+ epc-sctp-a-net-rt: 13979:105717
+ epc-sctp-a-net-cidr: 107.243.37.0/27
+ epc-sctp-a-net-gateway: 107.243.37.1
+ epc-sctp-a-pool-start: 107.243.37.3
+ epc-sctp-a-pool-end: 107.243.37.30
+ epc-sctp-b-net-name: EPC-SCTP-B
+ epc-sctp-b-net-rt: 13979:105719
+ epc-sctp-b-net-cidr: 107.243.37.32/24
+ epc-sctp-b-net-gateway: 107.243.37.33
+ epc-sctp-b-pool-start: 107.243.37.35
+ epc-sctp-b-pool-end: 107.243.37.62
+ epc-gtp-net-name: EPC-GTP
+ epc-gtp-net-rt: 13979:105715
+ epc-gtp-net-cidr: 107.243.37.64/27
+ epc-gtp-net-gateway: 107.243.37.65
+ epc-gtp-pool-start: 107.243.37.67
+ epc-gtp-pool-end: 107.243.37.94
+ fsb1-image: MME_FSB1_15B-CP04-r5a01
+ fsb2-image: MME_FSB2_15B-CP04-r5a01
+ fsb1-flavor: m4.xlarge4
+ fsb2-flavor: m4.xlarge4
+ fsb_zone: nova
+ fsb1-Internal1-mac: 00:80:37:0E:0B:12
+ fsb1-Internal2-mac: 00:81:37:0E:0B:12
+ fsb1-oam-ip: 107.250.172.221
+ fsb2-Internal1-mac: 00:80:37:0E:0D:12
+ fsb2-Internal2-mac: 00:81:37:0E:0D:12
+ fsb2-oam-ip: 107.250.172.222
+ pxe-image: MME_PXE-BOOT_cxp9025898_2r5a01.qcow2
+ ncb-flavor: m4.xlarge4
+ ncb_zone: nova
+ ncb1-Internal1-mac: 00:80:37:0E:09:12
+ ncb1-Internal2-mac: 00:81:37:0E:09:12
+ ncb2-Internal1-mac: 00:80:37:0E:0F:12
+ ncb2-Internal2-mac: 00:81:37:0E:0F:12
+ gpb-flavor: m4.xlarge4
+ gpb_zone: nova
+ gpb1-Internal1-mac: 00:80:37:0E:01:22
+ gpb1-Internal1-ip: 169.254.0.101
+ gpb1-Internal2-mac: 00:81:37:0E:01:22
+ gpb2-Internal1-mac: 00:80:37:0E:02:22
+ gpb2-Internal2-mac: 00:81:37:0E:02:22
+ vlc-flavor: m4.xlarge4
+ vlc_zone: nova
+ vlc1-sctp-a-ip: 107.243.37.3
+ vlc1-sctp-b-ip: 107.243.37.35
+ vlc1-gtp-ip: 107.243.37.67
+ vlc1-oam-ip: 107.250.172.227
+ vlc2-sctp-a-ip: 107.243.37.4
+ vlc2-sctp-b-ip: 107.243.37.36
+ vlc2-gtp-ip: 107.243.37.68
+ vlc2-oam-ip: 107.250.172.228
+ vlc1-Internal1-mac: 00:80:37:0E:01:12
+ vlc1-Internal2-mac: 00:81:37:0E:01:12
+ vlc2-Internal1-mac: 00:80:37:0E:02:12
+ vlc2-Internal2-mac: 00:81:37:0E:02:12
+ Internal1_net_name: vmme_int_int_1
+ Internal1_subnet_name: vmme_int_int_sub_1
+ Internal1_ipam_name: vmme_ipam_int1
+ Internal1_cidr: 169.253.0.0/17
+ Internal1_forwarding_mode: "l2"
+ Internal1_dhcp: "False"
+ Internal1_shared: "False"
+ Internal1_external: "False"
+ Internal1_name: "Internal1-subnet"
+ Internal1_default_gateway: 169.253.0.3
+ Internal1_net_pool_start: 169.253.0.100
+ Internal1_net_pool_end: 169.253.0.254
+ Internal2_net_name: vmme_int_int_2
+ Internal2_subnet_name: vmme_int_int_sub_2
+ Internal2_ipam_name: vmme_ipam_int2
+ Internal2_cidr: 169.255.0.0/17
+ Internal2_shared: "False"
+ Internal2_external: "False"
+ Internal2_forwarding_mode: "l2"
+ Internal2_dhcp: "False"
+ Internal2_name: "Internal2-subnet"
+ Internal2_default_gateway: 169.255.0.3
+ Internal2_net_pool_start: 169.255.0.100
+ Internal2_net_pool_end: 169.255.0.254
+ static_prefix_sctp_a_1: 107.239.40.32/30
+ static_prefix_gtp_1: 107.239.40.96/30
+ static_prefix_sctp_b_1: 107.239.40.64/30
+ VMME_FSB1_boot_volume: 8248e794-6173-4b49-b9c3-8219b0b56f4e
+ VMME_FSB2_boot_volume: 089a0d11-4b15-4370-8343-3f90907b1221
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.yml
new file mode 100644
index 0000000000..21df075c4a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Contrail_VirtualNetwork/inputs/vmme_small.yml
@@ -0,0 +1,722 @@
+heat_template_version: 2013-05-23
+
+description: >
+ HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+parameters:
+ fsb1-oam-ip:
+ type: string
+ fsb2-oam-ip:
+ type: string
+ vlc1-oam-ip:
+ type: string
+ vlc2-oam-ip:
+ type: string
+ Internal1_net_pool_start:
+ type: string
+ Internal1_net_pool_end:
+ type: string
+ Internal2_net_pool_start:
+ type: string
+ Internal2_net_pool_end:
+ type: string
+ Internal1_default_gateway:
+ type: string
+ Internal2_default_gateway:
+ type: string
+ Internal1_shared:
+ type: string
+ Internal1_external:
+ type: string
+ Internal1_net_name:
+ type: string
+ Internal1_subnet_name:
+ type: string
+ Internal1_ipam_name:
+ type: string
+ Internal1_cidr:
+ type: string
+ Internal1_forwarding_mode:
+ type: string
+ Internal1_dhcp:
+ type: string
+ Internal1_name:
+ type: string
+ Internal2_net_name:
+ type: string
+ Internal2_subnet_name:
+ type: string
+ Internal2_ipam_name:
+ type: string
+ Internal2_cidr:
+ type: string
+ Internal2_forwarding_mode:
+ type: string
+ Internal2_dhcp:
+ type: string
+ Internal2_name:
+ type: string
+ Internal2_shared:
+ type: string
+ Internal2_external:
+ type: string
+ vlc1-sctp-a-ip:
+ type: string
+ vlc1-sctp-b-ip:
+ type: string
+ vlc1-gtp-ip:
+ type: string
+ vlc2-sctp-a-ip:
+ type: string
+ vlc2-sctp-b-ip:
+ type: string
+ vlc2-gtp-ip:
+ type: string
+ fsb1-name:
+ type: string
+ description: Name of fsb1
+ fsb2-name:
+ type: string
+ description: Name of fsb1
+ ncb1-name:
+ type: string
+ description: Name of ncb1
+ ncb2-name:
+ type: string
+ description: Name of ncb2
+ vlc1-name:
+ type: string
+ description: Name of vlc1
+ vlc2-name:
+ type: string
+ description: Name of vlc2
+ gpb1-name:
+ type: string
+ description: Name of gpb1
+ gpb2-name:
+ type: string
+ description: Name of gpb2
+ fsb_zone:
+ type: string
+ description: cluster for spawnning fsb instances
+ fsb1-image:
+ type: string
+ description: Name of image to use for server fsb1
+ fsb1-flavor:
+ type: string
+ description: Flavor to use for servers fsb1
+ oam_net_id:
+ type: string
+ description: uuid of oam network
+ fsb1-Internal1-mac:
+ type: string
+ description: static mac address assigned to fsb1-Internal1
+ fsb1-Internal2-mac:
+ type: string
+ description: static mac address assigned to fsb1-Internal2
+ fsb2-image:
+ type: string
+ description: Name of image to use for server fsb2
+ fsb2-flavor:
+ type: string
+ description: Flavor to use for servers fsb2
+ fsb2-Internal1-mac:
+ type: string
+ description: static mac address assigned to fsb2-Internal1
+ fsb2-Internal2-mac:
+ type: string
+ description: static mac address assigned to fsb2-Internal2
+ pxe-image:
+ type: string
+ description: Name of image to use for server ncb
+ ncb-flavor:
+ type: string
+ description: Flavor to use for servers ncb
+ ncb_zone:
+ type: string
+ description: cluster for spawnning ncb instances
+ ncb1-Internal1-mac:
+ type: string
+ description: static mac address assigned to ncb1-Internal1
+ ncb1-Internal2-mac:
+ type: string
+ description: static mac address assigned to ncb1-Internal2
+ ncb2-Internal1-mac:
+ type: string
+ description: static mac address assigned to ncb2-Internal1
+ ncb2-Internal2-mac:
+ type: string
+ description: static mac address assigned to ncb2-Internal2
+ gpb-flavor:
+ type: string
+ description: Flavor to use for servers gpb
+ gpb_zone:
+ type: string
+ description: cluster for spawnning gpb instances
+ gpb1-Internal1-ip:
+ type: string
+ gpb1-Internal1-mac:
+ type: string
+ description: static mac address assigned to gpb1-Internal1
+ gpb1-Internal2-mac:
+ type: string
+ description: static mac address assigned to gpb1-Internal2
+ gpb2-Internal1-mac:
+ type: string
+ description: static mac address assigned to gpb2-Internal1
+ gpb2-Internal2-mac:
+ type: string
+ description: static mac address assigned to gpb2-Internal2
+ vlc-flavor:
+ type: string
+ description: Flavor to use for servers vlc
+ vlc_zone:
+ type: string
+ description: cluster for spawnning vlc instances
+ 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
+ vlc2-Internal1-mac:
+ type: string
+ description: static mac address assigned to vlc2-Internal1
+ vlc2-Internal2-mac:
+ type: string
+ description: static mac address assigned to vlc2-Internal2
+ epc-sctp-a-net-name:
+ type: string
+ description: epc-sctp-a net name
+ epc-sctp-a-net-rt:
+ type: string
+ description: epc-sctp-a route target
+ epc-sctp-a-net-cidr:
+ type: string
+ description: epc-sctp-a subnet
+ epc-sctp-a-net-gateway:
+ type: string
+ description: epc-sctp-a-net network gateway
+ epc-sctp-a-pool-start:
+ type: string
+ description: epc-sctp-a-net network ip pool start IP address
+ epc-sctp-a-pool-end:
+ type: string
+ description: epc-sctp-a-net network ip pool end IP address
+ epc-sctp-b-net-name:
+ type: string
+ description: epc-sctp-b net name
+ epc-sctp-b-net-rt:
+ type: string
+ description: epc-sctp-b route target
+ epc-sctp-b-net-cidr:
+ type: string
+ description: epc-sctp-b subnet
+ epc-sctp-b-net-gateway:
+ type: string
+ description: epc-sctp-b-net network gateway
+ epc-sctp-b-pool-start:
+ type: string
+ description: epc-sctp-b-net network ip pool start IP address
+ epc-sctp-b-pool-end:
+ type: string
+ description: epc-sctp-b-net network ip pool end IP address
+ epc-gtp-net-name:
+ type: string
+ description: gtp net name
+ epc-gtp-net-rt:
+ type: string
+ description: gtp route target
+ epc-gtp-net-cidr:
+ type: string
+ description: gtp stubnet
+ epc-gtp-net-gateway:
+ type: string
+ description: gtp network gateway
+ epc-gtp-pool-start:
+ type: string
+ description: gtp network ip pool start IP address
+ epc-gtp-pool-end:
+ type: string
+ description: gtp network ip pool end IP address
+ static_prefix_sctp_a_1:
+ type: string
+ description: Static Prefix
+ static_prefix_sctp_b_1:
+ type: string
+ description: Static Prefix
+ static_prefix_gtp_1:
+ type: string
+ description: Static Prefix
+ VMME_FSB1_boot_volume:
+ type: string
+ VMME_FSB2_boot_volume:
+ type: string
+ volume_type:
+ type: string
+ description: volume
+ volume_size:
+ type: string
+ description: volume
+ FSB1_volume_name:
+ type: string
+ description: volume name
+ FSB_1_image:
+ type: string
+ description: image name
+ FSB2_volume_name:
+ type: string
+ description: volume name
+ FSB_2_image:
+ type: string
+ description: image name
+ my_instance:
+ type: string
+ description: instance
+ Internal1-net:
+ type: string
+ description: net
+
+resources:
+ FSB1_volume:
+ type: OS::Cinder::Volume
+ properties:
+ size: 3
+ volume_type: {get_param: volume_type}
+ name: {get_param: FSB1_volume_name}
+ image: {get_param: FSB_1_image}
+
+ FSB2_volume:
+ type: OS::Cinder::Volume
+ properties:
+ size: {get_param: volume_size}
+ volume_type: {get_param: volume_type}
+ name: {get_param: FSB2_volume_name}
+ image: {get_param: FSB_2_image}
+
+ Internal1_ipam:
+ type: OS::Contrail::NetworkIpam
+ properties:
+ name: { get_param: Internal1_ipam_name }
+
+ Internal2_ipam:
+ type: OS::Contrail::NetworkIpam
+ properties:
+ name: { get_param: Internal2_ipam_name }
+
+ Internal1-net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: Internal1_net_name }
+ forwarding_mode: { get_param: Internal1_forwarding_mode }
+ shared: { get_param: Internal1_shared }
+ external: true
+ route_targets: { get_file: 'file:///nimbus-ethernet.sh' }
+ testConvertGetParamFunctions:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: Internal1_net_name }
+ forwarding_mode: { get_param: Internal1_forwarding_mode }
+ shared: { get_param: Internal1_shared }
+ external: { get_param: [my_instance, networks, private, 0] }
+# route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] }
+ testConvertGetAttributeFunctions:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: Internal1_net_name }
+ forwarding_mode: { get_param: Internal1_forwarding_mode }
+ shared: { get_param: Internal1_shared }
+ external: { get_param: Internal1_external }
+# route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] }
+
+ Internal1-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Internal1-net }
+ cidr: { get_param: Internal1_cidr }
+ gateway_ip: { get_param: Internal1_default_gateway }
+ enable_dhcp: { get_param: Internal1_dhcp }
+
+ Internal3-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Internal1-net }
+ cidr: { get_param: Internal2_cidr }
+ gateway_ip: { get_param: Internal2_default_gateway }
+ enable_dhcp: { get_param: Internal2_dhcp }
+
+ Internal4-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Internal1-net }
+ cidr: { get_param: Internal1_cidr }
+ gateway_ip: { get_param: Internal1_default_gateway }
+ enable_dhcp: off
+
+# Internal1-subnet:
+# type: OS::Contrail::VnSubnet
+# properties:
+# name: { get_param: Internal1_subnet_name }
+# network: { get_resource: Internal1-net }
+# ip_prefix: { get_param: Internal1_cidr }
+ # ipam: { get_resource: Internal1_ipam }
+ # enable_dhcp: { get_param: Internal1_dhcp }
+ # default_gateway: { get_param: Internal1_default_gateway }
+ # allocation_pools:
+ # - start: { get_param: Internal1_net_pool_start }
+ # end: { get_param: Internal1_net_pool_end }
+
+
+
+ Internal2-net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: Internal2_name }
+ forwarding_mode: { get_param: Internal2_forwarding_mode }
+ shared: { get_param: Internal2_shared }
+ external: { get_param: Internal2_external }
+# route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] }
+
+# Internal2-subnet:
+# type: OS::Contrail::VnSubnet
+# properties:
+# name: { get_param: Internal2_subnet_name }
+# network: { get_resource: Internal2-net }
+# ip_prefix: { get_param: Internal2_cidr }
+# ipam: { get_resource: Internal2_ipam }
+# enable_dhcp: { get_param: Internal2_dhcp }
+# default_gateway: { get_param: Internal2_default_gateway }
+# allocation_pools:
+# - start: { get_param: Internal2_net_pool_start }
+# end: { get_param: Internal2_net_pool_end }
+
+ Internal2-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: Internal2-net }
+ cidr: { get_param: Internal2_cidr }
+ gateway_ip: { get_param: Internal2_default_gateway }
+ enable_dhcp: { get_param: Internal2_dhcp }
+
+ epc-sctp-a-net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: epc-sctp-a-net-name }
+ route_targets: [ get_param: epc-sctp-a-net-rt ]
+
+
+ epc-sctp-a-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: epc-sctp-a-net }
+ cidr: { get_param: epc-sctp-a-net-cidr }
+ gateway_ip: { get_param: epc-sctp-a-net-gateway }
+ allocation_pools:
+ - start: { get_param: epc-sctp-a-pool-start }
+ end: { get_param: epc-sctp-a-pool-end }
+
+ epc-sctp-b-net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: epc-sctp-b-net-name }
+ route_targets: [ get_param: epc-sctp-b-net-rt ]
+
+ epc-sctp-b-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: epc-sctp-b-net }
+ cidr: { get_param: epc-sctp-b-net-cidr }
+ gateway_ip: { get_param: epc-sctp-b-net-gateway }
+ allocation_pools:
+ - start: { get_param: epc-sctp-b-pool-start }
+ end: { get_param: epc-sctp-b-pool-end }
+
+ epc-gtp-net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: epc-gtp-net-name }
+ route_targets: [ get_param: epc-gtp-net-rt ]
+
+ epc-gtp-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: epc-gtp-net }
+ cidr: { get_param: epc-gtp-net-cidr }
+ gateway_ip: { get_param: epc-gtp-net-gateway }
+ allocation_pools:
+ - start: { get_param: epc-gtp-pool-start }
+ end: { get_param: epc-gtp-pool-end }
+
+ FSB1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: fsb1-name }
+ block_device_mapping: [{device_name: "vda", volume_id : {get_param: VMME_FSB1_boot_volume }, delete_on_termination: "false" }]
+ flavor: { get_param: fsb1-flavor }
+ availability_zone: { get_param: fsb_zone }
+ networks:
+ - port: { get_resource: FSB1_Internal1 }
+ - port: { get_resource: FSB1_Internal2 }
+ - port: { get_resource: FSB1_OAM }
+
+ FSB1_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: fsb1-Internal1-mac }
+
+ FSB1_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: fsb1-Internal2-mac }
+
+ FSB1_OAM:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - ip_address: { get_param: fsb1-oam-ip }
+
+ FSB2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: fsb2-name }
+ block_device_mapping: [{device_name: "vda", volume_id : {get_param: VMME_FSB2_boot_volume }, delete_on_termination: "false" }]
+ flavor: { get_param: fsb2-flavor }
+ availability_zone: { get_param: fsb_zone }
+ networks:
+ - port: { get_resource: FSB2_Internal1 }
+ - port: { get_resource: FSB2_Internal2 }
+ - port: { get_resource: FSB2_OAM }
+
+ FSB2_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: fsb2-Internal1-mac }
+
+
+ FSB2_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: fsb2-Internal2-mac }
+
+ FSB2_OAM:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - ip_address: { get_param: fsb2-oam-ip }
+
+ NCB1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: ncb1-name }
+ image: { get_param: pxe-image }
+ flavor: { get_param: ncb-flavor }
+ availability_zone: { get_param: ncb_zone }
+ networks:
+ - port: { get_resource: NCB1_Internal1 }
+ - port: { get_resource: NCB1_Internal2 }
+
+ NCB1_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: ncb1-Internal1-mac }
+
+ NCB1_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: ncb1-Internal2-mac }
+
+ NCB2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: ncb2-name }
+ image: { get_param: pxe-image }
+ flavor: { get_param: ncb-flavor }
+ availability_zone: { get_param: ncb_zone }
+ networks:
+ - port: { get_resource: NCB2_Internal1 }
+ - port: { get_resource: NCB2_Internal2 }
+
+ NCB2_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: ncb2-Internal1-mac }
+
+ NCB2_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: ncb2-Internal2-mac }
+
+ GPB1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: gpb1-name }
+ image: { get_param: pxe-image }
+ flavor: { get_param: gpb-flavor }
+ availability_zone: { get_param: gpb_zone }
+ networks:
+ - port: { get_resource: GPB1_Internal1 }
+ - port: { get_resource: GPB1_Internal2 }
+
+ GPB1_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: gpb1-Internal1-mac }
+
+ GPB1_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: gpb1-Internal2-mac }
+
+ GPB2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: gpb2-name }
+ image: { get_param: pxe-image }
+ flavor: { get_param: gpb-flavor }
+ availability_zone: { get_param: gpb_zone }
+ networks:
+ - port: { get_resource: GPB2_Internal1 }
+ - port: { get_resource: GPB2_Internal2 }
+
+ GPB2_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: gpb2-Internal1-mac }
+
+ GPB2_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: gpb2-Internal2-mac }
+
+ VLC1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vlc1-name }
+ image: { get_param: pxe-image }
+ flavor: { get_param: vlc-flavor }
+ availability_zone: { get_param: vlc_zone }
+ networks:
+ - port: { get_resource: VLC1_Internal1 }
+ - port: { get_resource: VLC1_Internal2 }
+ - port: { get_resource: VLC1_OAM }
+ - port: { get_resource: VLC1_SCTP_A }
+ - port: { get_resource: VLC1_SCTP_B }
+ - port: { get_resource: VLC1_GTP }
+
+ VLC1_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: vlc1-Internal1-mac }
+
+ VLC1_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: vlc1-Internal2-mac }
+
+ VLC1_OAM:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - ip_address: { get_param: vlc1-oam-ip }
+
+ VLC1_SCTP_A:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: epc-sctp-a-net }
+ fixed_ips:
+ - ip_address: { get_param: vlc1-sctp-a-ip }
+
+ VLC1_SCTP_B:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: epc-sctp-b-net }
+ fixed_ips:
+ - ip_address: { get_param: vlc1-sctp-b-ip }
+
+ VLC1_GTP:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: epc-gtp-net }
+ fixed_ips:
+ - ip_address: { get_param: vlc1-gtp-ip }
+
+ VLC2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: vlc2-name }
+ image: { get_param: pxe-image }
+ flavor: { get_param: vlc-flavor }
+ availability_zone: { get_param: vlc_zone }
+ networks:
+ - port: { get_resource: VLC2_Internal1 }
+ - port: { get_resource: VLC2_Internal2 }
+ - port: { get_resource: VLC2_OAM }
+ - port: { get_resource: VLC2_SCTP_A }
+ - port: { get_resource: VLC2_SCTP_B }
+ - port: { get_resource: VLC2_GTP }
+
+
+ VLC2_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal1-net }
+ mac_address: { get_param: vlc2-Internal1-mac }
+
+ VLC2_OAM:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_id }
+ fixed_ips:
+ - ip_address: { get_param: vlc2-oam-ip }
+
+ VLC2_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: Internal2-net }
+ mac_address: { get_param: vlc2-Internal2-mac }
+
+ VLC2_SCTP_A:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: epc-sctp-a-net }
+ fixed_ips:
+ - ip_address: { get_param: vlc2-sctp-a-ip }
+
+ VLC2_SCTP_B:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: epc-sctp-b-net }
+ fixed_ips:
+ - ip_address: { get_param: vlc2-sctp-b-ip }
+
+ VLC2_GTP:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: epc-gtp-net }
+ fixed_ips:
+ - ip_address: { get_param: vlc2-gtp-ip }
+
+ Test-empty-network-in-subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_param: Internal1-net }
+ cidr: { get_param: Internal1_cidr }
+ gateway_ip: { get_param: Internal1_default_gateway }
+ enable_dhcp: { get_param: Internal1_dhcp } \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..c93363e850
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,219 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+topology_template:
+ inputs:
+ param_number:
+ hidden: false
+ immutable: false
+ type: float
+ description: param number - float
+ jsa_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIDR of jsa log network
+ default: 107.243.7.128/26
+ param_string:
+ hidden: false
+ immutable: false
+ type: string
+ description: param String - string
+ param_json:
+ hidden: false
+ immutable: false
+ type: json
+ description: param json - map<String>
+ param_comma_delimited_list:
+ hidden: false
+ immutable: false
+ type: list
+ description: param comma_delimited_list - List
+ entry_schema:
+ type: string
+ user_name:
+ label: User Name
+ hidden: true
+ immutable: false
+ type: string
+ description: User name to be configured for the application
+ constraints:
+ - max_length: 8
+ - min_length: 6
+ - pattern: '[A-Z]+[a-zA-Z0-9]*'
+ - in_range:
+ - 0
+ - 10
+ param_boolean:
+ hidden: false
+ immutable: false
+ type: boolean
+ description: param boolean - boolean
+ instance_type:
+ label: Instance Type
+ hidden: false
+ immutable: false
+ type: string
+ description: Instance type for compute instances
+ constraints:
+ - valid_values:
+ - m1.small
+ - m1.medium
+ - m1.large
+ jsa_net_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: network name of jsa log network
+ default: jsa_log_net_0
+ node_templates:
+ jsa_net:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ shared: true
+ network_name:
+ get_input: jsa_net_name
+ subnets:
+ jsa_subnet:
+ cidr:
+ get_input: jsa_cidr
+ jsa_net_test_get_attribute_2_params:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_agent_ids:
+ - '1000'
+ - '1001'
+ - '1002'
+ tenant_id: 23456
+ port_security_enabled: true
+ shared: true
+ admin_state_up: false
+ qos_policy: full
+ network_name:
+ get_attribute:
+ - jsa_net
+ - network_name
+ value_specs:
+ key1: spec1
+ jsa_net_test_get_attribute_3_params:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_agent_ids:
+ - '1000'
+ - '1001'
+ - '1002'
+ tenant_id: 23456
+ port_security_enabled: true
+ shared: true
+ admin_state_up: false
+ qos_policy: full
+ network_name:
+ get_attribute:
+ - jsa_net
+ - network_name
+ - 0
+ value_specs:
+ key1: spec1
+ jsa_net_test_get_attribute_4_params:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_agent_ids:
+ - '1000'
+ - '1001'
+ - '1002'
+ tenant_id: 23456
+ port_security_enabled: true
+ shared: true
+ admin_state_up: false
+ qos_policy: full
+ network_name:
+ get_attribute:
+ - jsa_net
+ - network_name
+ - 0
+ - a1
+ value_specs:
+ key1: spec1
+ jsa_net_test_get_attribute_5_params:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_agent_ids:
+ - '1000'
+ - '1001'
+ - '1002'
+ tenant_id: 23456
+ port_security_enabled: true
+ shared: true
+ admin_state_up: false
+ qos_policy: full
+ network_name:
+ get_attribute:
+ - jsa_net
+ - network_name
+ - 0
+ - a1
+ - a2
+ value_specs:
+ key1: spec1
+ jsa_net_test_full_attribute:
+ type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+ properties:
+ dhcp_agent_ids:
+ - '1000'
+ - '1001'
+ - '1002'
+ tenant_id: 23456
+ port_security_enabled: true
+ shared: true
+ admin_state_up: false
+ qos_policy: full
+ network_name:
+ get_input: jsa_net_name
+ subnets:
+ jsa_net_test_full_attribute_subnet:
+ cidr:
+ get_input: jsa_cidr
+ value_specs:
+ key1: spec1
+ key2: spec2
+ groups:
+ ep-jsa_net:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/ep-jsa_net.yaml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - jsa_net
+ - jsa_net_test_get_attribute_2_params
+ - jsa_net_test_get_attribute_3_params
+ - jsa_net_test_get_attribute_4_params
+ - jsa_net_test_get_attribute_5_params
+ - jsa_net_test_full_attribute \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/MANIFEST.json
new file mode 100644
index 0000000000..0d0f2bd7cf
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/MANIFEST.json
@@ -0,0 +1,17 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "ep-jsa_net.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "ep-jsa_net.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.env
new file mode 100644
index 0000000000..9dd1cd441f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.env
@@ -0,0 +1,4 @@
+parameters:
+ jsa_net_name: jsa_log_net_0
+ jsa_cidr: 107.243.7.128/26
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.yaml
new file mode 100644
index 0000000000..3c5b00dc48
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Neutron_Net/inputs/ep-jsa_net.yaml
@@ -0,0 +1,135 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ param_string:
+ type: string
+ description: param String - string
+ param_number:
+ type: number
+ description: param number - float
+ param_json:
+ type: json
+ description: param json - map<String>
+ param_boolean:
+ type: boolean
+ description: param boolean - boolean
+ param_comma_delimited_list:
+ type: comma_delimited_list
+ description: param comma_delimited_list - List
+
+ jsa_net_name:
+ type: string
+ description: network name of jsa log network
+ jsa_cidr:
+ type: string
+ description: CIDR of jsa log network
+ user_name:
+ type: string
+ label: User Name
+ description: User name to be configured for the application
+ hidden: true
+ constraints:
+ - length: { min: 6, max: 8 }
+ description: User name must be between 6 and 8 characters
+ - allowed_pattern: "[A-Z]+[a-zA-Z0-9]*"
+ description: User name must start with an uppercase character
+ - range: { min: 0, max: 10 }
+ instance_type:
+ type: string
+ label: Instance Type
+ description: Instance type for compute instances
+ constraints:
+ - allowed_values:
+ - m1.small
+ - m1.medium
+ - m1.large
+
+resources:
+ jsa_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: {get_resource: jsa_net}
+ cidr: {get_param: jsa_cidr}
+
+ jsa_net:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_param: jsa_net_name}
+ shared: True
+
+ jsa_net_test_full_attribute:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_param: jsa_net_name}
+ shared: True
+ dhcp_agent_ids: ['1000','1001','1002']
+ tenant_id: 23456
+ port_security_enabled: t
+ admin_state_up: 0
+ qos_policy: full
+ value_specs:
+ key1: "spec1"
+ key2: "spec2"
+
+ jsa_net_test_full_attribute_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: {get_resource: jsa_net_test_full_attribute}
+ cidr: {get_param: jsa_cidr}
+
+ jsa_net_test_get_attribute_2_params:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_attr: [jsa_net, name]}
+ shared: True
+ dhcp_agent_ids: ['1000','1001','1002']
+ tenant_id: 23456
+ port_security_enabled: t
+ admin_state_up: 0
+ qos_policy: full
+ value_specs:
+ key1: "spec1"
+
+ jsa_net_test_get_attribute_3_params:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_attr: [jsa_net, name, 0]}
+ shared: True
+ dhcp_agent_ids: ['1000','1001','1002']
+ tenant_id: 23456
+ port_security_enabled: t
+ admin_state_up: 0
+ qos_policy: full
+ value_specs:
+ key1: "spec1"
+
+ jsa_net_test_get_attribute_4_params:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_attr: [jsa_net, name, 0,a1]}
+ shared: True
+ dhcp_agent_ids: ['1000','1001','1002']
+ tenant_id: 23456
+ port_security_enabled: t
+ admin_state_up: 0
+ qos_policy: full
+ value_specs:
+ key1: "spec1"
+
+ jsa_net_test_get_attribute_5_params:
+ type: OS::Neutron::Net
+ properties:
+ name: {get_attr: [jsa_net, name, 0, a1, a2]}
+ shared: True
+ dhcp_agent_ids: ['1000','1001','1002']
+ tenant_id: 23456
+ port_security_enabled: t
+ admin_state_up: 0
+ qos_policy: full
+ value_specs:
+ key1: "spec1"
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..4eacd2f60a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,602 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+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
+ org.openecomp.resource.vfc.nodes.heat.pcm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ org.openecomp.resource.vfc.nodes.heat.pcrf_psm_server:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ Internal2_name:
+ label: Internal2_name
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal2_name
+ Internal1_shared:
+ label: Internal1_shared
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal1_shared
+ FSB1_volume_name:
+ label: FSB1_volume
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_volume_1
+ jsa_cidr:
+ label: jsa_cidr
+ hidden: false
+ immutable: false
+ type: string
+ description: jsa_cidr
+ default: 107.243.7.128/26
+ availabilityzone_name:
+ label: availabilityzone_name
+ hidden: false
+ immutable: false
+ type: string
+ description: availabilityzone_name
+ fsb1-name:
+ label: FSB1_name
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_name
+ pcm_image_name:
+ label: pcm_image_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pcm_image_name
+ Internal2_external:
+ label: Internal2_external
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal2_external
+ Internal2_forwarding_mode:
+ label: Internal2_forwarding_mode
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal2_forwarding_mode
+ pcrf_psm_flavor_name:
+ label: pcrf_psm_flavor_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pcrf_psm_flavor_name
+ pcrf_psm_image_name:
+ label: pcrf_psm_image_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pcrf_psm_image_name
+ pcrf_vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ FSB_1_image:
+ label: MME_FSB1
+ hidden: false
+ immutable: false
+ type: string
+ description: MME_FSB1_15B-CP04-r5a01
+ snapshot01:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ volume_size:
+ label: volume size
+ hidden: false
+ immutable: false
+ type: float
+ description: my volume size 320GB
+ snapshot02:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ fsb1-Internal1-mac:
+ label: FSB1_internal_mac
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_internal_mac
+ Internal2_shared:
+ label: Internal2_shared
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal2_shared
+ pcm_server_name:
+ label: pcm_server_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pcm_server_name
+ cps_net_mask:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ Internal1_net_name:
+ label: Internal1_net_name
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal1_net_name
+ oam_net_name:
+ label: oam_net_name
+ hidden: false
+ immutable: false
+ type: string
+ description: oam_net_name
+ fsb1-flavor:
+ label: FSB1_flavor
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_flavor
+ fsb1-Internal2-mac:
+ label: FSB1_internal_mac
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_internal_mac
+ pcm_vol_01:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ volume_type:
+ label: volume type
+ hidden: false
+ immutable: false
+ type: string
+ description: volume type Gold
+ fsb1-zone:
+ label: FSB1_zone
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_zone
+ fsb_zone:
+ label: FSB1_zone
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_zone
+ oam_net_gw:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ VMME_FSB1_boot_volume:
+ hidden: false
+ immutable: false
+ type: string
+ network_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ cps_net_ip:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ jsa_net_name:
+ label: jsa_net_name
+ hidden: false
+ immutable: false
+ type: string
+ description: jsa_net_name
+ default: jsa_log_net_0
+ pcrf_psm_server_name:
+ label: pcrf_psm_server_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pcrf_psm_server_name
+ pcm_flavor_name:
+ label: pcm_flavor_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pcm_flavor_name
+ oam_net_id:
+ label: oam_net_id
+ hidden: false
+ immutable: false
+ type: string
+ description: oam_net_id
+ pcrf_cps_net_ip:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ fsb2-Internal1-mac:
+ label: FSB1_internal_mac
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_internal_mac
+ Internal1_forwarding_mode:
+ label: Internal1_forwarding_mode
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal1_forwarding_mode
+ pcrf_cps_net_name:
+ label: pcrf_cps_net_name
+ hidden: false
+ immutable: false
+ type: string
+ description: pcrf_cps_net_name
+ pcm_vol:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ cps_net_name:
+ label: cps_net_name
+ hidden: false
+ immutable: false
+ type: string
+ description: cps_net_name
+ oam_net_ip:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ oam_net_mask:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ fsb1-oam-ip:
+ hidden: false
+ immutable: false
+ type: string
+ description: prop
+ pcrf_security_group_name:
+ hidden: false
+ immutable: false
+ type: list
+ description: CMAUI1, CMAUI2 server names
+ entry_schema:
+ type: string
+ Internal1_external:
+ label: Internal1_external
+ hidden: false
+ immutable: false
+ type: string
+ description: Internal1_external
+ node_templates:
+ pcm_vol_02:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ image:
+ get_input: FSB_1_image
+ volume_type:
+ get_input: volume_type
+ size: '(get_input : volume_size) * 1024'
+ read_only: true
+ name:
+ get_input: FSB1_volume_name
+ Internal2-net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ shared:
+ get_input: Internal2_shared
+ forwarding_mode:
+ get_input: Internal2_forwarding_mode
+ external:
+ get_input: Internal2_external
+ network_name:
+ get_input: Internal2_name
+ pcm_port_1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: oam_net_ip
+ network:
+ get_input: oam_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ server_VolumeTest_snapshot02:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ snapshot_id:
+ get_input: snapshot02
+ FSB1_Internal2:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: fsb1-Internal2-mac
+ network: Internal2-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal2-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ server_VolumeTest_snapshot01:
+ type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+ properties:
+ snapshot_id:
+ get_input: snapshot01
+ FSB1_Internal1:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ mac_address:
+ get_input: fsb1-Internal1-mac
+ network: Internal1-net
+ requirements:
+ - link:
+ capability: tosca.capabilities.network.Linkable
+ node: Internal1-net
+ relationship: tosca.relationships.network.LinksTo
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ FSB1_OAM:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ fixed_ips:
+ - ip_address:
+ get_input: fsb1-oam-ip
+ network:
+ get_input: oam_net_id
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: FSB1
+ relationship: tosca.relationships.network.BindsTo
+ psm01_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: pcrf_security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: pcrf_cps_net_ip
+ network:
+ get_input: pcrf_cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: pcrf_server_psm
+ relationship: tosca.relationships.network.BindsTo
+ pcm_port_0:
+ type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+ properties:
+ security_groups:
+ - get_input: security_group_name
+ fixed_ips:
+ - ip_address:
+ get_input: cps_net_ip
+ network:
+ get_input: cps_net_name
+ requirements:
+ - binding:
+ capability: tosca.capabilities.network.Bindable
+ node: server_pcm
+ relationship: tosca.relationships.network.BindsTo
+ network:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ network_name:
+ get_input: Internal1_net_name
+ server_pcm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ Internal1-net:
+ type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+ properties:
+ shared:
+ get_input: Internal1_shared
+ forwarding_mode:
+ get_input: Internal1_forwarding_mode
+ external:
+ get_input: Internal1_external
+ network_name:
+ get_input: Internal1_net_name
+ pcrf_server_psm:
+ type: org.openecomp.resource.vfc.nodes.heat.pcrf_psm_server
+ properties:
+ flavor:
+ get_input: pcrf_psm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcrf_psm_image_name
+ config_drive: 'True'
+ metadata:
+ vnf_id:
+ get_input: pcrf_vnf_id
+ user_data_format: RAW
+ name:
+ get_input: pcrf_psm_server_name
+ server_VolumeTest:
+ type: org.openecomp.resource.vfc.nodes.heat.pcm_server
+ properties:
+ flavor:
+ get_input: pcm_flavor_name
+ availability_zone:
+ get_input: availabilityzone_name
+ image:
+ get_input: pcm_image_name
+ config_drive: 'True'
+ user_data_format: RAW
+ name:
+ get_input: pcm_server_name
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: pcm_vol_02
+ relationship: tosca.relationships.AttachesTo
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: server_VolumeTest_snapshot01
+ relationship: server_VolumeTest_4
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ node: server_VolumeTest_snapshot02
+ relationship: server_VolumeTest_5
+ FSB2:
+ type: org.openecomp.resource.vfc.nodes.heat.FSB2
+ properties:
+ flavor:
+ get_input: fsb1-flavor
+ availability_zone:
+ get_input: fsb_zone
+ name:
+ get_input: fsb1-name
+ FSB1:
+ type: org.openecomp.resource.vfc.nodes.heat.FSB1
+ properties:
+ flavor:
+ get_input: fsb1-flavor
+ availability_zone:
+ get_input: fsb_zone
+ metadata:
+ write_files:
+ - path: /etc/sysconfig/network-scripts/ifcfg-eth0
+ permissions: '0644'
+ content:
+ str_replace:
+ template:
+ get_artifact:
+ - SELF
+ - nimbus-ethernet
+ params:
+ $dev: eth0
+ $netmask:
+ get_input: cps_net_mask
+ $ip:
+ get_input: cps_net_ip
+ - path: /etc/sysconfig/network-scripts/ifcfg-eth1
+ permissions: '0644'
+ content:
+ str_replace:
+ template:
+ get_artifact:
+ - SELF
+ - nimbus-ethernet-gw
+ params:
+ $dev: eth1
+ $netmask:
+ get_input: oam_net_mask
+ $gateway:
+ get_input: oam_net_gw
+ $ip:
+ get_input: oam_net_ip
+ name:
+ get_input: fsb1-name
+ artifacts:
+ nimbus-ethernet-gw:
+ type: tosca.artifacts.Deployment
+ file: ../Artifacts/nimbus-ethernet-gw
+ nimbus-ethernet:
+ type: tosca.artifacts.Deployment
+ file: ../Artifacts/nimbus-ethernet
+ relationship_templates:
+ server_VolumeTest_4:
+ type: org.openecomp.relationships.heat.cinder.VolumeAttachesTo
+ properties:
+ volume_id: server_VolumeTest_snapshot01
+ instance_uuid: server_VolumeTest
+ device: vdb
+ server_VolumeTest_5:
+ type: org.openecomp.relationships.heat.cinder.VolumeAttachesTo
+ properties:
+ volume_id: server_VolumeTest_snapshot02
+ instance_uuid: server_VolumeTest
+ groups:
+ ep-jsa_net:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/ep-jsa_net.yaml
+ description: |
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+ members:
+ - pcm_vol_02
+ - Internal2-net
+ - pcm_port_1
+ - FSB1_Internal2
+ - FSB1_Internal1
+ - FSB1_OAM
+ - psm01_port_0
+ - pcm_port_0
+ - network
+ - server_pcm
+ - Internal1-net
+ - pcrf_server_psm
+ - server_VolumeTest
+ - FSB2
+ - FSB1 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/MANIFEST.json
new file mode 100644
index 0000000000..cd0c5e8803
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/MANIFEST.json
@@ -0,0 +1,25 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "ep-jsa_net.yaml",
+ "type": "HEAT",
+ "data": [
+ {
+ "file": "ep-jsa_net.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "nimbus-ethernet",
+ "type": "OTHER"
+ },
+ {
+ "file": "nimbus-ethernet-gw",
+ "type": "OTHER"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.env
new file mode 100644
index 0000000000..9dd1cd441f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.env
@@ -0,0 +1,4 @@
+parameters:
+ jsa_net_name: jsa_log_net_0
+ jsa_cidr: 107.243.7.128/26
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.yaml
new file mode 100644
index 0000000000..3e6d1ec2e4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/ep-jsa_net.yaml
@@ -0,0 +1,411 @@
+heat_template_version: 2013-05-23
+
+description: >
+ Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
+
+parameters:
+ security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ pcrf_security_group_name:
+ type: comma_delimited_list
+ description: CMAUI1, CMAUI2 server names
+ volume_type:
+ type: string
+ label: volume type
+ description: volume type Gold
+
+ volume_size:
+ type: number
+ label: volume size
+ description: my volume size 320GB
+
+ FSB_1_image:
+ type: string
+ label: MME_FSB1
+ description: MME_FSB1_15B-CP04-r5a01
+
+ FSB1_volume_name:
+ type: string
+ label: FSB1_volume
+ description: FSB1_volume_1
+
+ fsb1-name:
+ type: string
+ label: FSB1_name
+ description: FSB1_name
+
+ fsb1-flavor:
+ type: string
+ label: FSB1_flavor
+ description: FSB1_flavor
+
+ fsb1-zone:
+ type: string
+ label: FSB1_zone
+ description: FSB1_zone
+
+ fsb_zone:
+ type: string
+ label: FSB1_zone
+ description: FSB1_zone
+
+ fsb1-Internal1-mac:
+ type: string
+ label: FSB1_internal_mac
+ description: FSB1_internal_mac
+
+ fsb1-Internal2-mac:
+ type: string
+ label: FSB1_internal_mac
+ description: FSB1_internal_mac
+
+ fsb2-Internal1-mac:
+ type: string
+ label: FSB1_internal_mac
+ description: FSB1_internal_mac
+
+ oam_net_id:
+ type: string
+ label: oam_net_id
+ description: oam_net_id
+
+ jsa_net_name:
+ type: string
+ label: jsa_net_name
+ description: jsa_net_name
+
+ jsa_cidr:
+ type: string
+ label: jsa_cidr
+ description: jsa_cidr
+
+ pcrf_cps_net_name:
+ type: string
+ label: pcrf_cps_net_name
+ description: pcrf_cps_net_name
+
+ pcrf_psm_server_name:
+ type: string
+ label: pcrf_psm_server_name
+ description: pcrf_psm_server_name
+
+ pcrf_psm_image_name:
+ type: string
+ label: pcrf_psm_image_name
+ description: pcrf_psm_image_name
+
+ pcrf_psm_flavor_name:
+ type: string
+ label: pcrf_psm_flavor_name
+ description: pcrf_psm_flavor_name
+
+ availabilityzone_name:
+ type: string
+ label: availabilityzone_name
+ description: availabilityzone_name
+
+ pcm_server_name:
+ type: string
+ label: pcm_server_name
+ description: pcm_server_name
+
+ pcm_image_name:
+ type: string
+ label: pcm_image_name
+ description: pcm_image_name
+
+ pcm_flavor_name:
+ type: string
+ label: pcm_flavor_name
+ description: pcm_flavor_name
+
+ Internal1_net_name:
+ type: string
+ label: Internal1_net_name
+ description: Internal1_net_name
+
+ Internal1_forwarding_mode:
+ type: string
+ label: Internal1_forwarding_mode
+ description: Internal1_forwarding_mode
+
+ Internal1_shared:
+ type: string
+ label: Internal1_shared
+ description: Internal1_shared
+
+ Internal1_external:
+ type: string
+ label: Internal1_external
+ description: Internal1_external
+
+ Internal2_name:
+ type: string
+ label: Internal2_name
+ description: Internal2_name
+
+ Internal2_shared:
+ type: string
+ label: Internal2_shared
+ description: Internal2_shared
+
+ Internal2_external:
+ type: string
+ label: Internal2_external
+ description: Internal2_external
+
+ Internal2_forwarding_mode:
+ type: string
+ label: Internal2_forwarding_mode
+ description: Internal2_forwarding_mode
+
+ cps_net_name:
+ type: string
+ label: cps_net_name
+ description: cps_net_name
+
+ oam_net_name:
+ type: string
+ label: oam_net_name
+ description: oam_net_name
+ oam_net_gw:
+ type: string
+ description: prop
+ cps_net_ip:
+ type: string
+ description: prop
+ cps_net_mask:
+ type: string
+ description: prop
+ oam_net_ip:
+ type: string
+ description: prop
+ oam_net_mask:
+ type: string
+ description: prop
+ fsb1-oam-ip:
+ type: string
+ description: prop
+ pcrf_cps_net_ip:
+ type: string
+ description: prop
+ pcrf_vnf_id:
+ type: string
+ description: prop
+ pcm_vol:
+ type: string
+ description: prop
+ pcm_vol_01:
+ type: string
+ description: prop
+ snapshot01:
+ type: string
+ description: prop
+ snapshot02:
+ type: string
+ description: prop
+ VMME_FSB1_boot_volume:
+ type: string
+ network_name:
+ type: string
+ description: prop
+
+
+resources:
+ FSB1:
+ type: OS::Nova::Server
+ depends_on: script_init
+ properties:
+ name: { get_param: fsb1-name }
+ block_device_mapping: [{device_name: "vda", volume_id : {get_param: VMME_FSB1_boot_volume }, delete_on_termination: "false" }]
+ flavor: { get_param: fsb1-flavor }
+ availability_zone: { get_param: fsb_zone }
+ networks:
+ - port: { get_resource: FSB1_Internal1 }
+ fixed_ip: 10.0.0.0
+ floating_ip: 10.0.0.1
+ network: 100_1000_0011
+ port_extra_properties: {admin_state_up: true , allowed_address_pairs: 10}
+ subnet: 10.0.0.2
+ - port: { get_resource: FSB1_Internal2 }
+ - port: { get_resource: FSB1_OAM }
+ metadata:
+ write_files:
+ - path: /etc/sysconfig/network-scripts/ifcfg-eth0
+ permissions: "0644"
+ content:
+ str_replace:
+ template: { get_file: "file:///nimbus-ethernet" }
+ params:
+ $dev: eth0
+ $ip: { get_param: cps_net_ip }
+ $netmask: { get_param: cps_net_mask }
+ - path: /etc/sysconfig/network-scripts/ifcfg-eth1
+ permissions: "0644"
+ content:
+ str_replace:
+ template: { get_file: "file:///nimbus-ethernet-gw" }
+ params:
+ $dev: eth1
+ $ip: { get_param: oam_net_ip }
+ $netmask: { get_param: oam_net_mask }
+ $gateway: { get_param: oam_net_gw }
+
+
+ FSB1_Internal1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Internal1-net }
+ mac_address: { get_param: fsb1-Internal1-mac }
+
+ FSB1_Internal2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: Internal2-net }
+ mac_address: { get_param: fsb1-Internal2-mac }
+
+ FSB1_OAM:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_id }
+ fixed_ips:
+ - ip_address: { get_param: fsb1-oam-ip }
+
+ pcrf_server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+
+ psm01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: pcrf_cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: pcrf_cps_net_ip }
+ security_groups: [{ get_param: pcrf_security_group_name }]
+
+ pcrf_server_psm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcrf_psm_server_name }
+ image: { get_param: pcrf_psm_image_name }
+ flavor: { get_param: pcrf_psm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: psm01_port_0}
+ user_data_format: RAW
+ user_data:
+ get_resource: pcrf_server_init
+ metadata:
+ vnf_id: {get_param: pcrf_vnf_id}
+ server_pcm:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ networks:
+ - port: { get_resource: pcm_port_0}
+ - port: { get_resource: pcm_port_1}
+ block_device_mapping:
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+ server_VolumeTest:
+ type: OS::Nova::Server
+ properties:
+ config_drive: "True"
+ name: { get_param: pcm_server_name }
+ image: { get_param: pcm_image_name }
+ flavor: { get_param: pcm_flavor_name }
+ availability_zone: { get_param: availabilityzone_name }
+ block_device_mapping:
+ - device_name: vdb
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol}
+ - device_name: vdb
+ volume_id: { get_param: pcm_vol_01}
+ - device_name: vdb
+ volume_id: { get_resource: pcm_vol_02}
+ - device_name: vdb
+ snapshot_id: { get_param: snapshot01}
+ - snapshot_id: { get_param: snapshot02}
+ user_data_format: RAW
+ user_data:
+ get_resource: server_init
+ server_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+ - config: { get_resource: script_init}
+ script_init:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: { get_resource: network}
+
+ network:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: Internal1_net_name }
+
+ pcm_vol_02:
+ type: OS::Cinder::Volume
+ properties:
+ size: {get_param: volume_size}
+ volume_type: {get_param: volume_type}
+ name: {get_param: FSB1_volume_name}
+ image: {get_param: FSB_1_image}
+ read_only: 1
+
+ pcm_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cps_net_name }
+ fixed_ips:
+ - ip_address: { get_param: cps_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ pcm_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: oam_net_name }
+ fixed_ips:
+ - ip_address: { get_param: oam_net_ip }
+ security_groups: [{ get_param: security_group_name }]
+
+ Internal1-net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: Internal1_net_name }
+ forwarding_mode: { get_param: Internal1_forwarding_mode }
+ shared: { get_param: Internal1_shared }
+ external: { get_param: Internal1_external }
+# route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] }
+
+ Internal2-net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: Internal2_name }
+ forwarding_mode: { get_param: Internal2_forwarding_mode }
+ shared: { get_param: Internal2_shared }
+ external: { get_param: Internal2_external }
+# route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] }
+
+ FSB2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: fsb1-name }
+ flavor: { get_param: fsb1-flavor }
+ availability_zone: { get_param: fsb_zone }
+ networks:
+ - network: {get_param: network_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/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet-gw b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet-gw
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/resources/OS_Nova_Server/inputs/nimbus-ethernet-gw
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..6d35846244
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,95 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+ ContrailComputeGlobalTypes:
+ file: ContrailComputeGlobalTypesServiceTemplate.yaml
+ CinderVolumeGlobalTypes:
+ file: CinderVolumeGlobalTypesServiceTemplate.yaml
+ ContrailVirtualNetworkGlobalType:
+ file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml
+ AbstractSubstituteGlobalTypes:
+ file: AbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailPortGlobalTypes:
+ file: ContrailPortGlobalTypesServiceTemplate.yaml
+ NeutronPortGlobalTypes:
+ file: NeutronPortGlobalTypesServiceTemplate.yaml
+ NeutronNetGlobalTypes:
+ file: NeutronNetGlobalTypesServiceTemplate.yaml
+ CommonGlobalTypes:
+ file: CommonGlobalTypesServiceTemplate.yaml
+ ContrailAbstractSubstituteGlobalTypes:
+ file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml
+ ContrailNetworkRuleGlobalType:
+ file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml
+ NeutronSecurityRulesGlobalTypes:
+ file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml
+ NovaServerGlobalTypes:
+ file: NovaServerGlobalTypesServiceTemplate.yaml
+ ContrailV2VirtualMachineInterfaceGlobalType:
+ file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml
+node_types:
+ org.openecomp.resource.vfc.nodes.heat.server_pcm_002:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+ org.openecomp.resource.vfc.nodes.heat.server_pcm_001:
+ derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+ inputs:
+ fsb1-flavor:
+ label: FSB1_flavor
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_flavor
+ fsb_zone:
+ label: FSB1_zone
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_zone
+ fsb1-name:
+ label: FSB1_name
+ hidden: false
+ immutable: false
+ type: string
+ description: FSB1_name
+ FSB_1_image:
+ label: MME_FSB1
+ hidden: false
+ immutable: false
+ type: string
+ description: MME_FSB1_15B-CP04-r5a01
+ node_templates:
+ server_pcm_002:
+ type: org.openecomp.resource.vfc.nodes.heat.server_pcm_002
+ properties:
+ flavor:
+ get_input: fsb1-flavor
+ availability_zone:
+ get_input: fsb_zone
+ name:
+ get_input: fsb1-name
+ server_pcm_001:
+ type: org.openecomp.resource.vfc.nodes.heat.server_pcm_001
+ properties:
+ flavor:
+ get_input: fsb1-flavor
+ availability_zone:
+ get_input: fsb_zone
+ name:
+ get_input: fsb1-name
+ groups:
+ sharedDefinitionOutParam:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/sharedDefinitionOutParam.yaml
+ description: heat template that creates PCRF Cluman stack
+ members:
+ - server_pcm_002
+ - server_pcm_001
+ outputs:
+ out_id2:
+ value: static value
+ out_id1:
+ value:
+ get_input: oam_net_gw \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/MANIFEST.json
new file mode 100644
index 0000000000..786c357838
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/MANIFEST.json
@@ -0,0 +1,12 @@
+{
+ "name": "vEP_JSA_Net",
+ "description": "Version 2.0 02-09-2016 (Authors: John Doe, user PROD)",
+ "version": "2013-05-23",
+ "data": [
+ {
+ "file": "sharedDefinitionOutParam.yaml",
+ "type": "HEAT",
+ "isBase": "true"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/sharedDefinitionOutParam.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/sharedDefinitionOutParam.yaml
new file mode 100644
index 0000000000..778375425b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/sharedresources/inputs/sharedDefinitionOutParam.yaml
@@ -0,0 +1,45 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates PCRF Cluman stack
+
+parameters:
+ FSB_1_image:
+ type: string
+ label: MME_FSB1
+ description: MME_FSB1_15B-CP04-r5a01
+ fsb1-flavor:
+ type: string
+ label: FSB1_flavor
+ description: FSB1_flavor
+ fsb_zone:
+ type: string
+ label: FSB1_zone
+ description: FSB1_zone
+ fsb1-name:
+ type: string
+ label: FSB1_name
+ description: FSB1_name
+resources:
+ server_pcm_001:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: fsb1-name }
+ flavor: { get_param: fsb1-flavor }
+ availability_zone: { get_param: fsb_zone }
+
+ server_pcm_002:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: fsb1-name }
+ flavor: { get_param: fsb1-flavor }
+ availability_zone: { get_param: fsb_zone }
+
+outputs:
+ server_pcm_001_id:
+ value: {get_resource: server_pcm_001}
+ server_pcm_002_id:
+ value: {get_resource: server_pcm_002}
+ out_id1:
+ value: {get_param: oam_net_gw}
+ out_id2:
+ value: "static value"