Junit for verifying Pattern1B 25/33425/2
authorsiddharth0905 <siddharth.singh4@amdocs.com>
Wed, 28 Feb 2018 13:01:23 +0000 (18:31 +0530)
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>
Sun, 4 Mar 2018 09:37:31 +0000 (09:37 +0000)
Junit for verifying Pattern1B

Change-Id: Ic7af0f22abf097dbe9f48a838951478eca648cd2
Issue-ID: SDC-1072
Signed-off-by: siddharth0905 <siddharth.singh4@amdocs.com>
47 files changed:
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/heat_env.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/Nested_ps_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/heat_env.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/Nested_pd_server_1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/heat_env.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/Nested_ps_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/heat_env.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/Nested_pd_server_1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/nestedServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/heat_env.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/main.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/nested.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/nested1.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/Nested_pd_serverServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/Nested_pd_server_1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/nestedServiceTemplate.yaml [new file with mode: 0644]

index 558ebf4..4b22e66 100644 (file)
@@ -25,6 +25,8 @@ public class UnifiedCompositionSubInterfaceFullTest extends BaseFullTranslationT
 
   private static final String PATTERN_1A_BASE_DIRECTORY =
       "/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1a/";
+  private static final String PATTERN_1B_BASE_DIRECTORY =
+      "/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/";
   private static final String PATTERN_1C1_BASE_DIRECTORY =
       "/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1c1/";
 
@@ -123,6 +125,60 @@ public class UnifiedCompositionSubInterfaceFullTest extends BaseFullTranslationT
     testTranslationWithInit(PATTERN_1A_BASE_DIRECTORY + "notBoundToParentPort");
   }
 
+  //Pattern 1B test
+  @Test
+  public void testDiffComputeSubInterface() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. There are two compute both of different type
+     */
+    testTranslationWithInit(PATTERN_1B_BASE_DIRECTORY + "diffComputeSubInterface");
+  }
+
+  @Test
+  public void testOnePortIsConnectedWithSubInf() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. Two compute of same type
+     * 2. Two port of same type but only one of them is having sub interface binding
+     */
+    testTranslationWithInit(PATTERN_1B_BASE_DIRECTORY + "onePortIsConnectedWithSubInf");
+  }
+
+  @Test
+  public void testRegularNestedSubInterface() throws IOException {
+    /**
+     * Heat file with one compute, one port and one sub interface without resource group
+     * 1. Two compute of same type
+     * 2. Two port are of different type
+     * 3. Sub interface properties are same in both port
+     */
+    testTranslationWithInit(PATTERN_1B_BASE_DIRECTORY + "regularNestedSubInterface");
+  }
+
+  @Test
+  public void testSameComputeDiffPortSubInterface() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. Two compute of same type
+     * 2. Two port are of different type
+     * 3. Sub interface properties are same in both port
+     */
+    testTranslationWithInit(PATTERN_1B_BASE_DIRECTORY + "sameComputeDiffPortSubInterface");
+  }
+
+  @Test
+  public void testSameComputeSamePortDiffSubInterfaceFile() throws IOException {
+    /**
+     * Heat file with one compute, one port and one subinterface resource group with
+     * 1. Two compute of same type
+     * 2. Two port are of same type connected with different sub interface nested file
+     * 3. Sub interface property are same for both port
+     */
+    testTranslationWithInit(PATTERN_1B_BASE_DIRECTORY
+        + "sameComputeSamePortDiffSubInterfaceFile");
+  }
+
   //****************** PATTERN 1C1 Tests ***************************
 
   @Test
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..c3b0532
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template with 2 compute",
+  "version": "2018-02-01",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true",
+      "data": [
+        {
+          "file": "heat_env.env",
+          "type": "HEAT_ENV"
+        }
+      ]
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/heat_env.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/heat_env.env
new file mode 100644 (file)
index 0000000..8ce5738
--- /dev/null
@@ -0,0 +1,45 @@
+parameters:
+  pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002
+  pd_image_name: MOG_BASE_8.0
+  pd_flavor_name: m3.xlarge
+  oam_server_names: ZRDM1MOGX01OAM001,ZRDM1MOGX01OAM002
+  oam_image_name: MOG_BASE_8.0
+  oam_flavor_name: m3.xlarge
+  sm_server_names: ZRDM1MOGX01MSM001,ZRDM1MOGX01MSM002
+  sm_image_name: MOG_BASE_8.0
+  sm_flavor_name: m2.xlarge4
+  ps_server_names: ZRDM1MOGX01MPS001,ZRDM1MOGX01MPS002,ZRDM1MOGX01MPS003,ZRDM1MOGX01MPS004
+  ps_image_name: MOG_BASE_8.0
+  ps_flavor_name: m3.xlarge
+  cm_server_names: ZRDM1MOGX01MCM001
+  cm_image_name: MOG_BASE_8.0
+  cm_flavor_name: m3.xlarge
+  availabilityzone_name: nova
+  oam_net_name: oam_protected_net_0
+  oam_net_ips: 107.250.172.213,107.250.172.214,107.250.172.215,107.250.172.216,107.250.172.217
+  #internet_net_name: dmz_protected_net_0
+  #internet_net_ips: 107.239.53.4,107.239.53.5
+ # internet_net_floating_ip: 107.239.53.6
+  sl_net_name: exn_protected_net_0
+  sl_net_ips: 107.239.45.4,107.239.45.5
+  sl_net_floating_ip: 107.239.45.6
+  repl_net_name: cor_direct_net_0
+  repl_net_ips: 107.239.33.57,107.239.33.58
+  rx_net_name: cor_direct_net_1
+  rx_net_ips: 107.239.34.3,107.239.34.4
+  rx_net_floating_ip: 107.239.34.5
+  ran_net_name: gn_direct_net_0
+  ran_net_ips: 107.239.36.3,107.239.36.4
+  ran_net_floating_ip: 107.239.36.5
+  dummy_net_name_0: mog_dummy_0
+  dummy_net_start_0: 169.254.1.4
+  dummy_net_end_0: 169.254.1.254
+  dummy_net_cidr_0: 169.254.1.0/24
+  dummy_net_netmask_0: 255.255.255.0
+  dummy_net_name_1: mog_dummy_1
+  csb_net_name: int_mog_csb_net
+  csb_net_ips: 172.26.0.10,172.26.0.11,172.26.0.12,172.26.0.13,172.26.0.14,172.26.0.15,172.26.0.16,172.26.0.17,172.26.0.18,172.26.0.19,172.26.0.20
+  csb_net_start: 172.26.0.1
+  csb_net_end: 172.26.0.254
+  csb_net_cidr: 172.26.0.0/24
+  csb_net_netmask: 255.255.255.0
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/main.yml
new file mode 100644 (file)
index 0000000..8b0c3e2
--- /dev/null
@@ -0,0 +1,234 @@
+heat_template_version: 2018-02-01
+
+description: heat template that creates MOG stack
+
+parameters:
+  jsa_net_name:
+    type: string
+    description: network name of jsa log network
+  pd_server_names:
+    type: comma_delimited_list
+    label: PD server names
+    description: name of the PD instance
+  pd_image_name:
+    type: string
+    label: image name
+    description: PD image name
+  pd_flavor_name:
+    type: string
+    label: PD flavor name
+    description: flavor name of PD instance
+  oam_server_names:
+    type: comma_delimited_list
+    label: OAM server names
+    description: name of the OAM instance
+  oam_image_name:
+    type: string
+    label: image name
+    description: OAM image name
+  oam_flavor_name:
+    type: string
+    label: OAM flavor name
+    description: flavor name of OAM instance
+  sm_server_names:
+    type: comma_delimited_list
+    label: SM server names
+    description: name of the SM instance
+  sm_image_name:
+    type: string
+    label: image name
+    description: SM image name
+  sm_flavor_name:
+    type: string
+    label: SM flavor name
+    description: flavor name of SM instance
+  ps_server_names:
+    type: comma_delimited_list
+    label: PS server names
+    description: name of the PS instance
+  ps_image_name:
+    type: string
+    label: PS image name
+    description: PS image name
+  ps_flavor_name:
+    type: string
+    label: PS flavor name
+    description: flavor name of PS instance
+  cm_server_names:
+    type: comma_delimited_list
+    label: CM server names
+    description: name of the CM instance
+  cm_image_name:
+    type: string
+    label: image name
+    description: CM image name
+  cm_flavor_name:
+    type: string
+    label: CM flavor name
+    description: flavor name of CM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  oam_net_name:
+    type: string
+    label: oam network name
+    description: name of the oam network
+  oam_net_ips:
+    type: comma_delimited_list
+    label: internet network ips
+    description: ip of the OAM network
+  sl_net_name:
+    type: string
+    label: silver lining network name
+    description: id of the sl network
+  sl_net_ips:
+    type: comma_delimited_list
+    label: silver lining network ips
+    description: ips of the sl network
+  sl_net_floating_ip:
+    type: string
+    label: mog sl net virtual ip
+    description: mog sl net virtual ip
+  repl_net_name:
+    type: string
+    label: Replication network name
+    description: name of the replication network
+  repl_net_ips:
+    type: comma_delimited_list
+    label: repl network ips
+    description: ips of repl network
+  rx_net_name:
+    type: string
+    label: Rx network name
+    description: Rx network name
+  rx_net_ips:
+    type: comma_delimited_list
+    label: Rx network ips
+    description: Rx network ips
+  rx_net_floating_ip:
+    type: string
+    label: mog rx net virtual ip
+    description: mog rx net virtual ip
+  ran_net_name:
+    type: string
+    label: RAN network name
+    description: RAN network name
+  ran_net_ips:
+    type: comma_delimited_list
+    label: RAN network ips
+    description: RAN network ip
+  ran_net_floating_ip:
+    type: string
+    label: mog ran net virtual ip
+    description: mog ran net virtual ip
+  csb_net_name:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  csb_net_start:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  csb_net_end:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  csb_net_cidr:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  csb_net_netmask:
+    type: string
+    description: CSB internal network subnet mask
+  csb_net_ips:
+    type: comma_delimited_list
+    description: mog_csb_net IP addresses
+  dummy_net_name_0:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  dummy_net_start_0:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  dummy_net_end_0:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  dummy_net_cidr_0:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  dummy_net_netmask_0:
+    type: string
+    description: CSB internal network subnet mask
+  dummy_net_name_1:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+
+resources:
+  server_pd_01:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_0}
+      user_data_format:  RAW
+
+  pd01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  server_ps_01:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [ps_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: ps01_port_0}
+      user_data_format:  RAW
+
+  ps01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  test_resourceGroup:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 9
+      resource_def:
+        type: nested.yml
+        properties:
+          p1: { get_resource: pd01_port_0}
+          net1: { get_resource: test_net1}
+
+  test_resourceGroup2:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 9
+      resource_def:
+        type: nested.yml
+        properties:
+          p1: { get_resource: ps01_port_0}
+          net1: { get_resource: test_net1}
+
+  test_net1:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True
+
+  test_net2:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True      
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/in/nested.yml
new file mode 100644 (file)
index 0000000..c1de2fe
--- /dev/null
@@ -0,0 +1,72 @@
+heat_template_version: 2018-02-01
+
+description: cmaui server template for vMMSC
+
+parameters:
+  p1:
+    type: string
+  p2:
+    type: string
+  net1:
+    type: string
+  net2:
+    type: string
+  lb_st_vlan_type_oam:
+    description: dummy
+    type: string
+  mac_address:
+    type: string
+  virtual_ip_address:
+    type: string
+  virtual_ipv6_address:
+    type: string
+  vlan_ids:
+    type: string
+  subinterface_name_prefix:
+    type: string
+  subinterface_instance_index:
+    type: number
+resources:
+
+  template_Vlan_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME$VLAN
+          params:
+            $NAME: { get_param: subinterface_name_prefix }
+            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+      virtual_machine_interface_properties:
+        {
+          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
+        }
+      virtual_machine_interface_mac_addresses:
+        {
+        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+        }
+      virtual_machine_interface_allowed_address_pairs:
+        {
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+              }
+            },
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+              }
+            }
+          ]
+        }
+      virtual_network_refs: [{ get_param: net1 }]
+      virtual_machine_interface_refs: [{ get_param: p1 }]
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..8f21ba2
--- /dev/null
@@ -0,0 +1,1006 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.pd_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pd01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_1_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_pd01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_pd01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      vlan_ids:
+        type: string
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ipv6_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ip_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net2:
+        type: string
+        required: true
+        status: SUPPORTED
+      lb_st_vlan_type_oam:
+        type: string
+        description: dummy
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net1:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_name_prefix:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_instance_index:
+        type: float
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_template_Vlan_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_template_Vlan_1:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_template_Vlan_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.ps_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      compute_ps_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_ps_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      port_ps01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_ps01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_ps_server_ps01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_1_ps_server_ps01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_1_ps_server_ps01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_ps_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_ps_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_ps_server_ps01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_ps_server_ps01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.packets.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_ps_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_ps_server_ps01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_ps_server_ps01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_ps_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_ps_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_1_ps_server_ps01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_ps_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_ps_server_ps01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_ps_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_ps_server_ps01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      forwarder_ps_server_ps01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_ps_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..306d409
--- /dev/null
@@ -0,0 +1,808 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_flavor_name
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_1
+      type: string
+      description: csb internal network name
+      default: mog_dummy_1
+    dummy_net_name_0:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_0
+      type: string
+      description: csb internal network name
+      default: mog_dummy_0
+    dummy_net_cidr_0:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_cidr_0
+      type: string
+      description: csb internal cidr
+      default: 169.254.1.0/24
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: availabilityzone_name
+      type: string
+      description: availabilityzone name
+      default: nova
+    sl_net_floating_ip:
+      label: mog sl net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_floating_ip
+      type: string
+      description: mog sl net virtual ip
+      default: 107.239.45.6
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_ips
+      type: list
+      description: ips of repl network
+      default:
+      - 107.239.33.57
+      - 107.239.33.58
+      entry_schema:
+        type: string
+    sl_net_name:
+      label: silver lining network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_name
+      type: string
+      description: id of the sl network
+      default: exn_protected_net_0
+    rx_net_floating_ip:
+      label: mog rx net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_floating_ip
+      type: string
+      description: mog rx net virtual ip
+      default: 107.239.34.5
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_image_name
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_server_names
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    sm_server_names:
+      label: SM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_server_names
+      type: list
+      description: name of the SM instance
+      default:
+      - ZRDM1MOGX01MSM001
+      - ZRDM1MOGX01MSM002
+      entry_schema:
+        type: string
+    csb_net_start:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_start
+      type: string
+      description: csb internal start
+      default: 172.26.0.1
+    dummy_net_netmask_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_netmask_0
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    cm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_image_name
+      type: string
+      description: CM image name
+      default: MOG_BASE_8.0
+    ran_net_floating_ip:
+      label: mog ran net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_floating_ip
+      type: string
+      description: mog ran net virtual ip
+      default: 107.239.36.5
+    sm_flavor_name:
+      label: SM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_flavor_name
+      type: string
+      description: flavor name of SM instance
+      default: m2.xlarge4
+    ran_net_ips:
+      label: RAN network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_ips
+      type: list
+      description: RAN network ip
+      default:
+      - 107.239.36.3
+      - 107.239.36.4
+      entry_schema:
+        type: string
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_image_name
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    dummy_net_end_0:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_end_0
+      type: string
+      description: csb internal end
+      default: 169.254.1.254
+    oam_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_image_name
+      type: string
+      description: OAM image name
+      default: MOG_BASE_8.0
+    oam_server_names:
+      label: OAM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_server_names
+      type: list
+      description: name of the OAM instance
+      default:
+      - ZRDM1MOGX01OAM001
+      - ZRDM1MOGX01OAM002
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_ips
+      type: list
+      description: ip of the OAM network
+      default:
+      - 107.250.172.213
+      - 107.250.172.214
+      - 107.250.172.215
+      - 107.250.172.216
+      - 107.250.172.217
+      entry_schema:
+        type: string
+    csb_net_cidr:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_cidr
+      type: string
+      description: csb internal cidr
+      default: 172.26.0.0/24
+    ran_net_name:
+      label: RAN network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_name
+      type: string
+      description: RAN network name
+      default: gn_direct_net_0
+    cm_server_names:
+      label: CM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_server_names
+      type: list
+      description: name of the CM instance
+      default:
+      - ZRDM1MOGX01MCM001
+      entry_schema:
+        type: string
+    sl_net_ips:
+      label: silver lining network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_ips
+      type: list
+      description: ips of the sl network
+      default:
+      - 107.239.45.4
+      - 107.239.45.5
+      entry_schema:
+        type: string
+    rx_net_name:
+      label: Rx network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_name
+      type: string
+      description: Rx network name
+      default: cor_direct_net_1
+    csb_net_netmask:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_netmask
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_flavor_name
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_name
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+    csb_net_end:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_end
+      type: string
+      description: csb internal end
+      default: 172.26.0.254
+    dummy_net_start_0:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_start_0
+      type: string
+      description: csb internal start
+      default: 169.254.1.4
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: jsa_net_name
+      type: string
+      description: network name of jsa log network
+    cm_flavor_name:
+      label: CM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_flavor_name
+      type: string
+      description: flavor name of CM instance
+      default: m3.xlarge
+    sm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_image_name
+      type: string
+      description: SM image name
+      default: MOG_BASE_8.0
+    csb_net_name:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_name
+      type: string
+      description: csb internal network name
+      default: int_mog_csb_net
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_server_names
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_ips
+      type: list
+      description: mog_csb_net IP addresses
+      default:
+      - 172.26.0.10
+      - 172.26.0.11
+      - 172.26.0.12
+      - 172.26.0.13
+      - 172.26.0.14
+      - 172.26.0.15
+      - 172.26.0.16
+      - 172.26.0.17
+      - 172.26.0.18
+      - 172.26.0.19
+      - 172.26.0.20
+      entry_schema:
+        type: string
+    ps_flavor_name:
+      label: PS flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_flavor_name
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    rx_net_ips:
+      label: Rx network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_ips
+      type: list
+      description: Rx network ips
+      default:
+      - 107.239.34.3
+      - 107.239.34.4
+      entry_schema:
+        type: string
+  node_templates:
+    test_net2:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    test_net1:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - pd01_port_0
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_pd01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_1_pd_server_pd01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+    abstract_ps_server:
+      type: org.openecomp.resource.abstract.nodes.ps_server
+      directives:
+      - substitutable
+      properties:
+        compute_ps_server_name:
+        - get_input:
+          - ps_server_names
+          - 0
+        compute_ps_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_ps_server_user_data_format:
+        - RAW
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - ps01_port_0
+        vm_image_name:
+          get_input: pd_image_name
+        port_ps01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_ps01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_ps01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_ps01_port_network_role_tag: oam
+        service_template_filter:
+          substitute_service_template: Nested_ps_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_1_ps_server_ps01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: heat template that creates MOG stack
+      members:
+      - test_net2
+      - test_net1
+      - abstract_pd_server
+      - abstract_ps_server
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..f309435
--- /dev/null
@@ -0,0 +1,344 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_order:
+      type: integer
+      required: true
+    port_pd01_port_subnetpoolid:
+      type: string
+      required: true
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server_pd01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count: 9
+          mandatory: true
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_1:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server_pd01_port
+          relationship: tosca.relationships.network.BindsTo
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        order:
+          get_input: port_pd01_port_order
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      feature_template_Vlan_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature_template_Vlan_1
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      network.outgoing.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.packets.rate
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      network.incoming.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      attachment_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - attachment
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      feature_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes.rate
+      network.incoming.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      network.outpoing.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outpoing.packets
+      forwarder_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - forwarder
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      feature_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - feature
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      dependency_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency
+      link_template_Vlan_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - link_template_Vlan_1
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_template_Vlan_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency_template_Vlan_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/Nested_ps_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..06e1e96
--- /dev/null
@@ -0,0 +1,344 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_ps_server
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.ps_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    compute_ps_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_subnetpoolid:
+      type: string
+      required: true
+    compute_ps_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_ps_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_ps01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_order:
+      type: integer
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_ps01_port_network_role:
+      type: string
+      required: true
+    port_ps01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_ps01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_ps01_port_network_role_tag:
+      type: string
+      required: true
+    port_ps01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+  node_templates:
+    ps_server_ps01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count: 9
+          mandatory: true
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_1:
+          capability: tosca.capabilities.network.Bindable
+          node: ps_server_ps01_port
+          relationship: tosca.relationships.network.BindsTo
+    ps_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.ps_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_ps_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_ps_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_ps_server_user_data_format
+          - index_value
+    ps_server_ps01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_ps01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_ps01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_ps01_port_ip_requirements
+        network_role_tag:
+          get_input: port_ps01_port_network_role_tag
+        mac_requirements:
+          get_input: port_ps01_port_mac_requirements
+        order:
+          get_input: port_ps01_port_order
+        network_role:
+          get_input: port_ps01_port_network_role
+        subnetpoolid:
+          get_input: port_ps01_port_subnetpoolid
+        network:
+          get_input:
+          - port_ps01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: ps_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.ps_server
+    capabilities:
+      network.incoming.packets.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.packets.rate
+      instance_ps_server:
+      - ps_server
+      - instance
+      network.outpoing.packets_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outpoing.packets
+      host_ps_server:
+      - ps_server
+      - host
+      network.incoming.packets_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.packets
+      cpu.delta_ps_server:
+      - ps_server
+      - cpu.delta
+      disk.write.bytes.rate_ps_server:
+      - ps_server
+      - disk.write.bytes.rate
+      feature_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - feature
+      feature_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - feature
+      feature_ps_server:
+      - ps_server
+      - feature
+      disk.root.size_ps_server:
+      - ps_server
+      - disk.root.size
+      disk.device.read.requests.rate_ps_server:
+      - ps_server
+      - disk.device.read.requests.rate
+      cpu_ps_server:
+      - ps_server
+      - cpu
+      disk.device.write.bytes_ps_server:
+      - ps_server
+      - disk.device.write.bytes
+      disk.device.read.bytes_ps_server:
+      - ps_server
+      - disk.device.read.bytes
+      disk.read.bytes_ps_server:
+      - ps_server
+      - disk.read.bytes
+      disk.device.iops_ps_server:
+      - ps_server
+      - disk.device.iops
+      network.outgoing.packets.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outgoing.packets.rate
+      disk.device.latency_ps_server:
+      - ps_server
+      - disk.device.latency
+      disk.read.bytes.rate_ps_server:
+      - ps_server
+      - disk.read.bytes.rate
+      memory_ps_server:
+      - ps_server
+      - memory
+      scalable_ps_server:
+      - ps_server
+      - scalable
+      disk.write.requests.rate_ps_server:
+      - ps_server
+      - disk.write.requests.rate
+      disk.write.requests_ps_server:
+      - ps_server
+      - disk.write.requests
+      disk.latency_ps_server:
+      - ps_server
+      - disk.latency
+      disk.ephemeral.size_ps_server:
+      - ps_server
+      - disk.ephemeral.size
+      disk.device.capacity_ps_server:
+      - ps_server
+      - disk.device.capacity
+      disk.iops_ps_server:
+      - ps_server
+      - disk.iops
+      disk.device.read.bytes.rate_ps_server:
+      - ps_server
+      - disk.device.read.bytes.rate
+      cpu_util_ps_server:
+      - ps_server
+      - cpu_util
+      memory.resident_ps_server:
+      - ps_server
+      - memory.resident
+      network.incoming.bytes_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.bytes
+      disk.device.read.requests_ps_server:
+      - ps_server
+      - disk.device.read.requests
+      disk.write.bytes_ps_server:
+      - ps_server
+      - disk.write.bytes
+      feature_template_Vlan_1_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - feature_template_Vlan_1
+      network.outgoing.bytes.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outgoing.bytes.rate
+      disk.device.write.requests.rate_ps_server:
+      - ps_server
+      - disk.device.write.requests.rate
+      disk.read.requests_ps_server:
+      - ps_server
+      - disk.read.requests
+      disk.allocation_ps_server:
+      - ps_server
+      - disk.allocation
+      memory.usage_ps_server:
+      - ps_server
+      - memory.usage
+      binding_ps_server:
+      - ps_server
+      - binding
+      attachment_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - attachment
+      os_ps_server:
+      - ps_server
+      - os
+      disk.device.usage_ps_server:
+      - ps_server
+      - disk.device.usage
+      binding_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - binding
+      forwarder_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - forwarder
+      disk.device.write.bytes.rate_ps_server:
+      - ps_server
+      - disk.device.write.bytes.rate
+      vcpus_ps_server:
+      - ps_server
+      - vcpus
+      disk.usage_ps_server:
+      - ps_server
+      - disk.usage
+      disk.device.write.requests_ps_server:
+      - ps_server
+      - disk.device.write.requests
+      endpoint_ps_server:
+      - ps_server
+      - endpoint
+      disk.capacity_ps_server:
+      - ps_server
+      - disk.capacity
+      network.incoming.bytes.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.bytes.rate
+      disk.device.allocation_ps_server:
+      - ps_server
+      - disk.device.allocation
+      network.outgoing.bytes_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outgoing.bytes
+    requirements:
+      dependency_ps_server:
+      - ps_server
+      - dependency
+      dependency_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - dependency
+      link_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - link
+      dependency_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - dependency
+      dependency_template_Vlan_1_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - dependency_template_Vlan_1
+      link_template_Vlan_1_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - link_template_Vlan_1
+      local_storage_ps_server:
+      - ps_server
+      - 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/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/diffComputeSubInterface/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..a82a056
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    vlan_ids:
+      hidden: false
+      immutable: false
+      type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+    net2:
+      hidden: false
+      immutable: false
+      type: string
+    lb_st_vlan_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+    net1:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_instance_index:
+      hidden: false
+      immutable: false
+      type: float
+  node_templates:
+    template_Vlan_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: p1
+        name:
+          str_replace:
+            template: $NAME$VLAN
+            params:
+              $NAME:
+                get_input: subinterface_name_prefix
+              $VLAN:
+                get_input:
+                - vlan_ids
+                - get_input: subinterface_instance_index
+        virtual_network_refs:
+        - get_input: net1
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input: lb_st_vlan_type_oam
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ip_address
+              ip_prefix_len: 32
+            mac:
+              get_input: mac_address
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ipv6_address
+              ip_prefix_len: 128
+            mac:
+              get_input: mac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    nested_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested.yml
+        description: cmaui server template for vMMSC
+      members:
+      - template_Vlan_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+    capabilities:
+      feature_template_Vlan_1:
+      - template_Vlan_1
+      - feature
+    requirements:
+      dependency_template_Vlan_1:
+      - template_Vlan_1
+      - dependency
+      link_template_Vlan_1:
+      - template_Vlan_1
+      - link
+      binding_template_Vlan_1:
+      - template_Vlan_1
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..c3b0532
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template with 2 compute",
+  "version": "2018-02-01",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true",
+      "data": [
+        {
+          "file": "heat_env.env",
+          "type": "HEAT_ENV"
+        }
+      ]
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/heat_env.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/heat_env.env
new file mode 100644 (file)
index 0000000..8ce5738
--- /dev/null
@@ -0,0 +1,45 @@
+parameters:
+  pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002
+  pd_image_name: MOG_BASE_8.0
+  pd_flavor_name: m3.xlarge
+  oam_server_names: ZRDM1MOGX01OAM001,ZRDM1MOGX01OAM002
+  oam_image_name: MOG_BASE_8.0
+  oam_flavor_name: m3.xlarge
+  sm_server_names: ZRDM1MOGX01MSM001,ZRDM1MOGX01MSM002
+  sm_image_name: MOG_BASE_8.0
+  sm_flavor_name: m2.xlarge4
+  ps_server_names: ZRDM1MOGX01MPS001,ZRDM1MOGX01MPS002,ZRDM1MOGX01MPS003,ZRDM1MOGX01MPS004
+  ps_image_name: MOG_BASE_8.0
+  ps_flavor_name: m3.xlarge
+  cm_server_names: ZRDM1MOGX01MCM001
+  cm_image_name: MOG_BASE_8.0
+  cm_flavor_name: m3.xlarge
+  availabilityzone_name: nova
+  oam_net_name: oam_protected_net_0
+  oam_net_ips: 107.250.172.213,107.250.172.214,107.250.172.215,107.250.172.216,107.250.172.217
+  #internet_net_name: dmz_protected_net_0
+  #internet_net_ips: 107.239.53.4,107.239.53.5
+ # internet_net_floating_ip: 107.239.53.6
+  sl_net_name: exn_protected_net_0
+  sl_net_ips: 107.239.45.4,107.239.45.5
+  sl_net_floating_ip: 107.239.45.6
+  repl_net_name: cor_direct_net_0
+  repl_net_ips: 107.239.33.57,107.239.33.58
+  rx_net_name: cor_direct_net_1
+  rx_net_ips: 107.239.34.3,107.239.34.4
+  rx_net_floating_ip: 107.239.34.5
+  ran_net_name: gn_direct_net_0
+  ran_net_ips: 107.239.36.3,107.239.36.4
+  ran_net_floating_ip: 107.239.36.5
+  dummy_net_name_0: mog_dummy_0
+  dummy_net_start_0: 169.254.1.4
+  dummy_net_end_0: 169.254.1.254
+  dummy_net_cidr_0: 169.254.1.0/24
+  dummy_net_netmask_0: 255.255.255.0
+  dummy_net_name_1: mog_dummy_1
+  csb_net_name: int_mog_csb_net
+  csb_net_ips: 172.26.0.10,172.26.0.11,172.26.0.12,172.26.0.13,172.26.0.14,172.26.0.15,172.26.0.16,172.26.0.17,172.26.0.18,172.26.0.19,172.26.0.20
+  csb_net_start: 172.26.0.1
+  csb_net_end: 172.26.0.254
+  csb_net_cidr: 172.26.0.0/24
+  csb_net_netmask: 255.255.255.0
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/main.yml
new file mode 100644 (file)
index 0000000..1d8b68c
--- /dev/null
@@ -0,0 +1,224 @@
+heat_template_version: 2018-02-01
+
+description: heat template that creates MOG stack
+
+parameters:
+  jsa_net_name:
+    type: string
+    description: network name of jsa log network
+  pd_server_names:
+    type: comma_delimited_list
+    label: PD server names
+    description: name of the PD instance
+  pd_image_name:
+    type: string
+    label: image name
+    description: PD image name
+  pd_flavor_name:
+    type: string
+    label: PD flavor name
+    description: flavor name of PD instance
+  oam_server_names:
+    type: comma_delimited_list
+    label: OAM server names
+    description: name of the OAM instance
+  oam_image_name:
+    type: string
+    label: image name
+    description: OAM image name
+  oam_flavor_name:
+    type: string
+    label: OAM flavor name
+    description: flavor name of OAM instance
+  sm_server_names:
+    type: comma_delimited_list
+    label: SM server names
+    description: name of the SM instance
+  sm_image_name:
+    type: string
+    label: image name
+    description: SM image name
+  sm_flavor_name:
+    type: string
+    label: SM flavor name
+    description: flavor name of SM instance
+  ps_server_names:
+    type: comma_delimited_list
+    label: PS server names
+    description: name of the PS instance
+  ps_image_name:
+    type: string
+    label: PS image name
+    description: PS image name
+  ps_flavor_name:
+    type: string
+    label: PS flavor name
+    description: flavor name of PS instance
+  cm_server_names:
+    type: comma_delimited_list
+    label: CM server names
+    description: name of the CM instance
+  cm_image_name:
+    type: string
+    label: image name
+    description: CM image name
+  cm_flavor_name:
+    type: string
+    label: CM flavor name
+    description: flavor name of CM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  oam_net_name:
+    type: string
+    label: oam network name
+    description: name of the oam network
+  oam_net_ips:
+    type: comma_delimited_list
+    label: internet network ips
+    description: ip of the OAM network
+  sl_net_name:
+    type: string
+    label: silver lining network name
+    description: id of the sl network
+  sl_net_ips:
+    type: comma_delimited_list
+    label: silver lining network ips
+    description: ips of the sl network
+  sl_net_floating_ip:
+    type: string
+    label: mog sl net virtual ip
+    description: mog sl net virtual ip
+  repl_net_name:
+    type: string
+    label: Replication network name
+    description: name of the replication network
+  repl_net_ips:
+    type: comma_delimited_list
+    label: repl network ips
+    description: ips of repl network
+  rx_net_name:
+    type: string
+    label: Rx network name
+    description: Rx network name
+  rx_net_ips:
+    type: comma_delimited_list
+    label: Rx network ips
+    description: Rx network ips
+  rx_net_floating_ip:
+    type: string
+    label: mog rx net virtual ip
+    description: mog rx net virtual ip
+  ran_net_name:
+    type: string
+    label: RAN network name
+    description: RAN network name
+  ran_net_ips:
+    type: comma_delimited_list
+    label: RAN network ips
+    description: RAN network ip
+  ran_net_floating_ip:
+    type: string
+    label: mog ran net virtual ip
+    description: mog ran net virtual ip
+  csb_net_name:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  csb_net_start:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  csb_net_end:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  csb_net_cidr:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  csb_net_netmask:
+    type: string
+    description: CSB internal network subnet mask
+  csb_net_ips:
+    type: comma_delimited_list
+    description: mog_csb_net IP addresses
+  dummy_net_name_0:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  dummy_net_start_0:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  dummy_net_end_0:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  dummy_net_cidr_0:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  dummy_net_netmask_0:
+    type: string
+    description: CSB internal network subnet mask
+  dummy_net_name_1:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+
+resources:
+  server_pd_01:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_0}
+      user_data_format:  RAW
+
+  pd01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  server_pd_02:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 1]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_1}
+      user_data_format:  RAW
+
+  pd01_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  test_resourceGroup:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 9
+      resource_def:
+        type: nested.yml
+        properties:
+          p1: { get_resource: pd01_port_0}
+          net1: { get_resource: test_net1}
+
+  test_net1:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True
+
+  test_net2:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True      
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/in/nested.yml
new file mode 100644 (file)
index 0000000..6a24418
--- /dev/null
@@ -0,0 +1,72 @@
+heat_template_version: 2018-02-01
+
+description: cmaui server template for vMMSC
+
+parameters:
+  p1:
+    type: string
+  p2:
+    type: string
+  net1:
+    type: string
+  net2:
+    type: string
+  lb_st_vlan_type_oam:
+    description: dummy
+    type: string
+  mac_address:
+    type: string
+  virtual_ip_address:
+    type: string
+  virtual_ipv6_address:
+    type: string
+  vlan_ids:
+    type: string
+  subinterface_name_prefix:
+    type: string
+  subinterface_instance_index:
+    type: number
+resources:
+
+  template_Vlan_vmi_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME$VLAN
+          params:
+            $NAME: { get_param: subinterface_name_prefix }
+            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+      virtual_machine_interface_properties:
+        {
+          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
+        }
+      virtual_machine_interface_mac_addresses:
+        {
+        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+        }
+      virtual_machine_interface_allowed_address_pairs:
+        {
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+              }
+            },
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+              }
+            }
+          ]
+        }
+      virtual_network_refs: [{ get_param: net1 }]
+      virtual_machine_interface_refs: [{ get_param: p1 }]
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..44f15ea
--- /dev/null
@@ -0,0 +1,964 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.pd_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pd01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_pd01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_pd01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.pd_server_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pd01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_pd01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_pd01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      vlan_ids:
+        type: string
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ipv6_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ip_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net2:
+        type: string
+        required: true
+        status: SUPPORTED
+      lb_st_vlan_type_oam:
+        type: string
+        description: dummy
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net1:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_name_prefix:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_instance_index:
+        type: float
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_template_Vlan_vmi_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_vmi_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_template_Vlan_vmi_1:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_template_Vlan_vmi_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2d7f3e2
--- /dev/null
@@ -0,0 +1,799 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_flavor_name
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_1
+      type: string
+      description: csb internal network name
+      default: mog_dummy_1
+    dummy_net_name_0:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_0
+      type: string
+      description: csb internal network name
+      default: mog_dummy_0
+    dummy_net_cidr_0:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_cidr_0
+      type: string
+      description: csb internal cidr
+      default: 169.254.1.0/24
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: availabilityzone_name
+      type: string
+      description: availabilityzone name
+      default: nova
+    sl_net_floating_ip:
+      label: mog sl net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_floating_ip
+      type: string
+      description: mog sl net virtual ip
+      default: 107.239.45.6
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_ips
+      type: list
+      description: ips of repl network
+      default:
+      - 107.239.33.57
+      - 107.239.33.58
+      entry_schema:
+        type: string
+    sl_net_name:
+      label: silver lining network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_name
+      type: string
+      description: id of the sl network
+      default: exn_protected_net_0
+    rx_net_floating_ip:
+      label: mog rx net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_floating_ip
+      type: string
+      description: mog rx net virtual ip
+      default: 107.239.34.5
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_image_name
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_server_names
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    sm_server_names:
+      label: SM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_server_names
+      type: list
+      description: name of the SM instance
+      default:
+      - ZRDM1MOGX01MSM001
+      - ZRDM1MOGX01MSM002
+      entry_schema:
+        type: string
+    csb_net_start:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_start
+      type: string
+      description: csb internal start
+      default: 172.26.0.1
+    dummy_net_netmask_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_netmask_0
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    cm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_image_name
+      type: string
+      description: CM image name
+      default: MOG_BASE_8.0
+    ran_net_floating_ip:
+      label: mog ran net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_floating_ip
+      type: string
+      description: mog ran net virtual ip
+      default: 107.239.36.5
+    sm_flavor_name:
+      label: SM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_flavor_name
+      type: string
+      description: flavor name of SM instance
+      default: m2.xlarge4
+    ran_net_ips:
+      label: RAN network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_ips
+      type: list
+      description: RAN network ip
+      default:
+      - 107.239.36.3
+      - 107.239.36.4
+      entry_schema:
+        type: string
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_image_name
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    dummy_net_end_0:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_end_0
+      type: string
+      description: csb internal end
+      default: 169.254.1.254
+    oam_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_image_name
+      type: string
+      description: OAM image name
+      default: MOG_BASE_8.0
+    oam_server_names:
+      label: OAM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_server_names
+      type: list
+      description: name of the OAM instance
+      default:
+      - ZRDM1MOGX01OAM001
+      - ZRDM1MOGX01OAM002
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_ips
+      type: list
+      description: ip of the OAM network
+      default:
+      - 107.250.172.213
+      - 107.250.172.214
+      - 107.250.172.215
+      - 107.250.172.216
+      - 107.250.172.217
+      entry_schema:
+        type: string
+    csb_net_cidr:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_cidr
+      type: string
+      description: csb internal cidr
+      default: 172.26.0.0/24
+    ran_net_name:
+      label: RAN network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_name
+      type: string
+      description: RAN network name
+      default: gn_direct_net_0
+    cm_server_names:
+      label: CM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_server_names
+      type: list
+      description: name of the CM instance
+      default:
+      - ZRDM1MOGX01MCM001
+      entry_schema:
+        type: string
+    sl_net_ips:
+      label: silver lining network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_ips
+      type: list
+      description: ips of the sl network
+      default:
+      - 107.239.45.4
+      - 107.239.45.5
+      entry_schema:
+        type: string
+    rx_net_name:
+      label: Rx network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_name
+      type: string
+      description: Rx network name
+      default: cor_direct_net_1
+    csb_net_netmask:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_netmask
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_flavor_name
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_name
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+    csb_net_end:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_end
+      type: string
+      description: csb internal end
+      default: 172.26.0.254
+    dummy_net_start_0:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_start_0
+      type: string
+      description: csb internal start
+      default: 169.254.1.4
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: jsa_net_name
+      type: string
+      description: network name of jsa log network
+    cm_flavor_name:
+      label: CM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_flavor_name
+      type: string
+      description: flavor name of CM instance
+      default: m3.xlarge
+    sm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_image_name
+      type: string
+      description: SM image name
+      default: MOG_BASE_8.0
+    csb_net_name:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_name
+      type: string
+      description: csb internal network name
+      default: int_mog_csb_net
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_server_names
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_ips
+      type: list
+      description: mog_csb_net IP addresses
+      default:
+      - 172.26.0.10
+      - 172.26.0.11
+      - 172.26.0.12
+      - 172.26.0.13
+      - 172.26.0.14
+      - 172.26.0.15
+      - 172.26.0.16
+      - 172.26.0.17
+      - 172.26.0.18
+      - 172.26.0.19
+      - 172.26.0.20
+      entry_schema:
+        type: string
+    ps_flavor_name:
+      label: PS flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_flavor_name
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    rx_net_ips:
+      label: Rx network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_ips
+      type: list
+      description: Rx network ips
+      default:
+      - 107.239.34.3
+      - 107.239.34.4
+      entry_schema:
+        type: string
+  node_templates:
+    test_net2:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    test_net1:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - get_input: oam_net_name
+        port_pd01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_1:
+      type: org.openecomp.resource.abstract.nodes.pd_server_1
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - pd01_port_0
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_pd01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: heat template that creates MOG stack
+      members:
+      - test_net2
+      - test_net1
+      - abstract_pd_server
+      - abstract_pd_server_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..3d9ebd7
--- /dev/null
@@ -0,0 +1,297 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_order:
+      type: integer
+      required: true
+    port_pd01_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        order:
+          get_input: port_pd01_port_order
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      network.outgoing.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.packets.rate
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      network.incoming.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      attachment_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - attachment
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes.rate
+      network.incoming.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      network.outpoing.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outpoing.packets
+      forwarder_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - forwarder
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      feature_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - feature
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      dependency_pd_server:
+      - pd_server
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/Nested_pd_server_1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..36baabb
--- /dev/null
@@ -0,0 +1,344 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_order:
+      type: integer
+      required: true
+    port_pd01_port_subnetpoolid:
+      type: string
+      required: true
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server_pd01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count: 9
+          mandatory: true
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_vmi_1:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server_pd01_port
+          relationship: tosca.relationships.network.BindsTo
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        order:
+          get_input: port_pd01_port_order
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_1
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      network.outgoing.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.packets.rate
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      network.incoming.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      attachment_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - attachment
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      feature_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature_template_Vlan_vmi_1
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      feature_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes.rate
+      network.incoming.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      network.outpoing.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outpoing.packets
+      forwarder_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - forwarder
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      feature_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - feature
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - link_template_Vlan_vmi_1
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      dependency_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency_template_Vlan_vmi_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/onePortIsConnectedWithSubInf/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..bbc48d7
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    vlan_ids:
+      hidden: false
+      immutable: false
+      type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+    net2:
+      hidden: false
+      immutable: false
+      type: string
+    lb_st_vlan_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+    net1:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_instance_index:
+      hidden: false
+      immutable: false
+      type: float
+  node_templates:
+    template_Vlan_vmi_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: p1
+        name:
+          str_replace:
+            template: $NAME$VLAN
+            params:
+              $NAME:
+                get_input: subinterface_name_prefix
+              $VLAN:
+                get_input:
+                - vlan_ids
+                - get_input: subinterface_instance_index
+        virtual_network_refs:
+        - get_input: net1
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input: lb_st_vlan_type_oam
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ip_address
+              ip_prefix_len: 32
+            mac:
+              get_input: mac_address
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ipv6_address
+              ip_prefix_len: 128
+            mac:
+              get_input: mac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    nested_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested.yml
+        description: cmaui server template for vMMSC
+      members:
+      - template_Vlan_vmi_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+    capabilities:
+      feature_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - feature
+    requirements:
+      link_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - link
+      dependency_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - dependency
+      binding_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..c3b0532
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template with 2 compute",
+  "version": "2018-02-01",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true",
+      "data": [
+        {
+          "file": "heat_env.env",
+          "type": "HEAT_ENV"
+        }
+      ]
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/heat_env.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/heat_env.env
new file mode 100644 (file)
index 0000000..8ce5738
--- /dev/null
@@ -0,0 +1,45 @@
+parameters:
+  pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002
+  pd_image_name: MOG_BASE_8.0
+  pd_flavor_name: m3.xlarge
+  oam_server_names: ZRDM1MOGX01OAM001,ZRDM1MOGX01OAM002
+  oam_image_name: MOG_BASE_8.0
+  oam_flavor_name: m3.xlarge
+  sm_server_names: ZRDM1MOGX01MSM001,ZRDM1MOGX01MSM002
+  sm_image_name: MOG_BASE_8.0
+  sm_flavor_name: m2.xlarge4
+  ps_server_names: ZRDM1MOGX01MPS001,ZRDM1MOGX01MPS002,ZRDM1MOGX01MPS003,ZRDM1MOGX01MPS004
+  ps_image_name: MOG_BASE_8.0
+  ps_flavor_name: m3.xlarge
+  cm_server_names: ZRDM1MOGX01MCM001
+  cm_image_name: MOG_BASE_8.0
+  cm_flavor_name: m3.xlarge
+  availabilityzone_name: nova
+  oam_net_name: oam_protected_net_0
+  oam_net_ips: 107.250.172.213,107.250.172.214,107.250.172.215,107.250.172.216,107.250.172.217
+  #internet_net_name: dmz_protected_net_0
+  #internet_net_ips: 107.239.53.4,107.239.53.5
+ # internet_net_floating_ip: 107.239.53.6
+  sl_net_name: exn_protected_net_0
+  sl_net_ips: 107.239.45.4,107.239.45.5
+  sl_net_floating_ip: 107.239.45.6
+  repl_net_name: cor_direct_net_0
+  repl_net_ips: 107.239.33.57,107.239.33.58
+  rx_net_name: cor_direct_net_1
+  rx_net_ips: 107.239.34.3,107.239.34.4
+  rx_net_floating_ip: 107.239.34.5
+  ran_net_name: gn_direct_net_0
+  ran_net_ips: 107.239.36.3,107.239.36.4
+  ran_net_floating_ip: 107.239.36.5
+  dummy_net_name_0: mog_dummy_0
+  dummy_net_start_0: 169.254.1.4
+  dummy_net_end_0: 169.254.1.254
+  dummy_net_cidr_0: 169.254.1.0/24
+  dummy_net_netmask_0: 255.255.255.0
+  dummy_net_name_1: mog_dummy_1
+  csb_net_name: int_mog_csb_net
+  csb_net_ips: 172.26.0.10,172.26.0.11,172.26.0.12,172.26.0.13,172.26.0.14,172.26.0.15,172.26.0.16,172.26.0.17,172.26.0.18,172.26.0.19,172.26.0.20
+  csb_net_start: 172.26.0.1
+  csb_net_end: 172.26.0.254
+  csb_net_cidr: 172.26.0.0/24
+  csb_net_netmask: 255.255.255.0
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/main.yml
new file mode 100644 (file)
index 0000000..659f423
--- /dev/null
@@ -0,0 +1,226 @@
+heat_template_version: 2018-02-01
+
+description: heat template that creates MOG stack
+
+parameters:
+  jsa_net_name:
+    type: string
+    description: network name of jsa log network
+  pd_server_names:
+    type: comma_delimited_list
+    label: PD server names
+    description: name of the PD instance
+  pd_image_name:
+    type: string
+    label: image name
+    description: PD image name
+  pd_flavor_name:
+    type: string
+    label: PD flavor name
+    description: flavor name of PD instance
+  oam_server_names:
+    type: comma_delimited_list
+    label: OAM server names
+    description: name of the OAM instance
+  oam_image_name:
+    type: string
+    label: image name
+    description: OAM image name
+  oam_flavor_name:
+    type: string
+    label: OAM flavor name
+    description: flavor name of OAM instance
+  sm_server_names:
+    type: comma_delimited_list
+    label: SM server names
+    description: name of the SM instance
+  sm_image_name:
+    type: string
+    label: image name
+    description: SM image name
+  sm_flavor_name:
+    type: string
+    label: SM flavor name
+    description: flavor name of SM instance
+  ps_server_names:
+    type: comma_delimited_list
+    label: PS server names
+    description: name of the PS instance
+  ps_image_name:
+    type: string
+    label: PS image name
+    description: PS image name
+  ps_flavor_name:
+    type: string
+    label: PS flavor name
+    description: flavor name of PS instance
+  cm_server_names:
+    type: comma_delimited_list
+    label: CM server names
+    description: name of the CM instance
+  cm_image_name:
+    type: string
+    label: image name
+    description: CM image name
+  cm_flavor_name:
+    type: string
+    label: CM flavor name
+    description: flavor name of CM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  oam_net_name:
+    type: string
+    label: oam network name
+    description: name of the oam network
+  oam_net_ips:
+    type: comma_delimited_list
+    label: internet network ips
+    description: ip of the OAM network
+  sl_net_name:
+    type: string
+    label: silver lining network name
+    description: id of the sl network
+  sl_net_ips:
+    type: comma_delimited_list
+    label: silver lining network ips
+    description: ips of the sl network
+  sl_net_floating_ip:
+    type: string
+    label: mog sl net virtual ip
+    description: mog sl net virtual ip
+  repl_net_name:
+    type: string
+    label: Replication network name
+    description: name of the replication network
+  repl_net_ips:
+    type: comma_delimited_list
+    label: repl network ips
+    description: ips of repl network
+  rx_net_name:
+    type: string
+    label: Rx network name
+    description: Rx network name
+  rx_net_ips:
+    type: comma_delimited_list
+    label: Rx network ips
+    description: Rx network ips
+  rx_net_floating_ip:
+    type: string
+    label: mog rx net virtual ip
+    description: mog rx net virtual ip
+  ran_net_name:
+    type: string
+    label: RAN network name
+    description: RAN network name
+  ran_net_ips:
+    type: comma_delimited_list
+    label: RAN network ips
+    description: RAN network ip
+  ran_net_floating_ip:
+    type: string
+    label: mog ran net virtual ip
+    description: mog ran net virtual ip
+  csb_net_name:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  csb_net_start:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  csb_net_end:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  csb_net_cidr:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  csb_net_netmask:
+    type: string
+    description: CSB internal network subnet mask
+  csb_net_ips:
+    type: comma_delimited_list
+    description: mog_csb_net IP addresses
+  dummy_net_name_0:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  dummy_net_start_0:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  dummy_net_end_0:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  dummy_net_cidr_0:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  dummy_net_netmask_0:
+    type: string
+    description: CSB internal network subnet mask
+  dummy_net_name_1:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+
+resources:
+  server_pd_01:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_0}
+      user_data_format:  RAW
+
+  pd01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  server_ps_01:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [ps_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: ps01_port_0}
+      user_data_format:  RAW
+
+  ps01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  test_resourceGroup:
+    type: nested.yml
+    properties:
+      p1: { get_resource: pd01_port_0}
+      net1: { get_resource: test_net1}
+
+  test_resourceGroup2:
+    type: nested.yml
+    properties:
+      p1: { get_resource: ps01_port_0}
+      net1: { get_resource: test_net1}
+
+  test_net1:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True
+
+  test_net2:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True      
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/in/nested.yml
new file mode 100644 (file)
index 0000000..c1de2fe
--- /dev/null
@@ -0,0 +1,72 @@
+heat_template_version: 2018-02-01
+
+description: cmaui server template for vMMSC
+
+parameters:
+  p1:
+    type: string
+  p2:
+    type: string
+  net1:
+    type: string
+  net2:
+    type: string
+  lb_st_vlan_type_oam:
+    description: dummy
+    type: string
+  mac_address:
+    type: string
+  virtual_ip_address:
+    type: string
+  virtual_ipv6_address:
+    type: string
+  vlan_ids:
+    type: string
+  subinterface_name_prefix:
+    type: string
+  subinterface_instance_index:
+    type: number
+resources:
+
+  template_Vlan_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME$VLAN
+          params:
+            $NAME: { get_param: subinterface_name_prefix }
+            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+      virtual_machine_interface_properties:
+        {
+          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
+        }
+      virtual_machine_interface_mac_addresses:
+        {
+        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+        }
+      virtual_machine_interface_allowed_address_pairs:
+        {
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+              }
+            },
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+              }
+            }
+          ]
+        }
+      virtual_network_refs: [{ get_param: net1 }]
+      virtual_machine_interface_refs: [{ get_param: p1 }]
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..8f21ba2
--- /dev/null
@@ -0,0 +1,1006 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.pd_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pd01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_1_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_pd01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_pd01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      vlan_ids:
+        type: string
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ipv6_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ip_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net2:
+        type: string
+        required: true
+        status: SUPPORTED
+      lb_st_vlan_type_oam:
+        type: string
+        description: dummy
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net1:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_name_prefix:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_instance_index:
+        type: float
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_template_Vlan_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_template_Vlan_1:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_template_Vlan_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.ps_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      compute_ps_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_ps_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      port_ps01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_ps01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_ps_server_ps01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_1_ps_server_ps01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_1_ps_server_ps01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_ps_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_ps_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_ps_server_ps01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_ps_server_ps01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.packets.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_ps_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_ps_server_ps01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_ps_server_ps01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_ps_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_ps_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_1_ps_server_ps01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_ps_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_ps_server_ps01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_ps_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_ps_server_ps01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      forwarder_ps_server_ps01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_ps_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_ps_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_ps_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..306d409
--- /dev/null
@@ -0,0 +1,808 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_flavor_name
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_1
+      type: string
+      description: csb internal network name
+      default: mog_dummy_1
+    dummy_net_name_0:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_0
+      type: string
+      description: csb internal network name
+      default: mog_dummy_0
+    dummy_net_cidr_0:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_cidr_0
+      type: string
+      description: csb internal cidr
+      default: 169.254.1.0/24
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: availabilityzone_name
+      type: string
+      description: availabilityzone name
+      default: nova
+    sl_net_floating_ip:
+      label: mog sl net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_floating_ip
+      type: string
+      description: mog sl net virtual ip
+      default: 107.239.45.6
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_ips
+      type: list
+      description: ips of repl network
+      default:
+      - 107.239.33.57
+      - 107.239.33.58
+      entry_schema:
+        type: string
+    sl_net_name:
+      label: silver lining network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_name
+      type: string
+      description: id of the sl network
+      default: exn_protected_net_0
+    rx_net_floating_ip:
+      label: mog rx net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_floating_ip
+      type: string
+      description: mog rx net virtual ip
+      default: 107.239.34.5
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_image_name
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_server_names
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    sm_server_names:
+      label: SM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_server_names
+      type: list
+      description: name of the SM instance
+      default:
+      - ZRDM1MOGX01MSM001
+      - ZRDM1MOGX01MSM002
+      entry_schema:
+        type: string
+    csb_net_start:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_start
+      type: string
+      description: csb internal start
+      default: 172.26.0.1
+    dummy_net_netmask_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_netmask_0
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    cm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_image_name
+      type: string
+      description: CM image name
+      default: MOG_BASE_8.0
+    ran_net_floating_ip:
+      label: mog ran net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_floating_ip
+      type: string
+      description: mog ran net virtual ip
+      default: 107.239.36.5
+    sm_flavor_name:
+      label: SM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_flavor_name
+      type: string
+      description: flavor name of SM instance
+      default: m2.xlarge4
+    ran_net_ips:
+      label: RAN network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_ips
+      type: list
+      description: RAN network ip
+      default:
+      - 107.239.36.3
+      - 107.239.36.4
+      entry_schema:
+        type: string
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_image_name
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    dummy_net_end_0:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_end_0
+      type: string
+      description: csb internal end
+      default: 169.254.1.254
+    oam_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_image_name
+      type: string
+      description: OAM image name
+      default: MOG_BASE_8.0
+    oam_server_names:
+      label: OAM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_server_names
+      type: list
+      description: name of the OAM instance
+      default:
+      - ZRDM1MOGX01OAM001
+      - ZRDM1MOGX01OAM002
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_ips
+      type: list
+      description: ip of the OAM network
+      default:
+      - 107.250.172.213
+      - 107.250.172.214
+      - 107.250.172.215
+      - 107.250.172.216
+      - 107.250.172.217
+      entry_schema:
+        type: string
+    csb_net_cidr:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_cidr
+      type: string
+      description: csb internal cidr
+      default: 172.26.0.0/24
+    ran_net_name:
+      label: RAN network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_name
+      type: string
+      description: RAN network name
+      default: gn_direct_net_0
+    cm_server_names:
+      label: CM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_server_names
+      type: list
+      description: name of the CM instance
+      default:
+      - ZRDM1MOGX01MCM001
+      entry_schema:
+        type: string
+    sl_net_ips:
+      label: silver lining network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_ips
+      type: list
+      description: ips of the sl network
+      default:
+      - 107.239.45.4
+      - 107.239.45.5
+      entry_schema:
+        type: string
+    rx_net_name:
+      label: Rx network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_name
+      type: string
+      description: Rx network name
+      default: cor_direct_net_1
+    csb_net_netmask:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_netmask
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_flavor_name
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_name
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+    csb_net_end:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_end
+      type: string
+      description: csb internal end
+      default: 172.26.0.254
+    dummy_net_start_0:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_start_0
+      type: string
+      description: csb internal start
+      default: 169.254.1.4
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: jsa_net_name
+      type: string
+      description: network name of jsa log network
+    cm_flavor_name:
+      label: CM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_flavor_name
+      type: string
+      description: flavor name of CM instance
+      default: m3.xlarge
+    sm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_image_name
+      type: string
+      description: SM image name
+      default: MOG_BASE_8.0
+    csb_net_name:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_name
+      type: string
+      description: csb internal network name
+      default: int_mog_csb_net
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_server_names
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_ips
+      type: list
+      description: mog_csb_net IP addresses
+      default:
+      - 172.26.0.10
+      - 172.26.0.11
+      - 172.26.0.12
+      - 172.26.0.13
+      - 172.26.0.14
+      - 172.26.0.15
+      - 172.26.0.16
+      - 172.26.0.17
+      - 172.26.0.18
+      - 172.26.0.19
+      - 172.26.0.20
+      entry_schema:
+        type: string
+    ps_flavor_name:
+      label: PS flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_flavor_name
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    rx_net_ips:
+      label: Rx network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_ips
+      type: list
+      description: Rx network ips
+      default:
+      - 107.239.34.3
+      - 107.239.34.4
+      entry_schema:
+        type: string
+  node_templates:
+    test_net2:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    test_net1:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - pd01_port_0
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_pd01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_1_pd_server_pd01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+    abstract_ps_server:
+      type: org.openecomp.resource.abstract.nodes.ps_server
+      directives:
+      - substitutable
+      properties:
+        compute_ps_server_name:
+        - get_input:
+          - ps_server_names
+          - 0
+        compute_ps_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_ps_server_user_data_format:
+        - RAW
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - ps01_port_0
+        vm_image_name:
+          get_input: pd_image_name
+        port_ps01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_ps01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_ps01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_ps01_port_network_role_tag: oam
+        service_template_filter:
+          substitute_service_template: Nested_ps_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_1_ps_server_ps01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: heat template that creates MOG stack
+      members:
+      - test_net2
+      - test_net1
+      - abstract_pd_server
+      - abstract_ps_server
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4671528
--- /dev/null
@@ -0,0 +1,342 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_order:
+      type: integer
+      required: true
+    port_pd01_port_subnetpoolid:
+      type: string
+      required: true
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server_pd01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_1:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server_pd01_port
+          relationship: tosca.relationships.network.BindsTo
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        order:
+          get_input: port_pd01_port_order
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      feature_template_Vlan_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature_template_Vlan_1
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      network.outgoing.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.packets.rate
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      network.incoming.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      attachment_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - attachment
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      feature_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes.rate
+      network.incoming.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      network.outpoing.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outpoing.packets
+      forwarder_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - forwarder
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      feature_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - feature
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      dependency_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency
+      link_template_Vlan_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - link_template_Vlan_1
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_template_Vlan_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency_template_Vlan_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/Nested_ps_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/Nested_ps_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..9579651
--- /dev/null
@@ -0,0 +1,342 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_ps_server
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.ps_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    compute_ps_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_subnetpoolid:
+      type: string
+      required: true
+    compute_ps_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_ps_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_ps01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_order:
+      type: integer
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_ps01_port_network_role:
+      type: string
+      required: true
+    port_ps01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_ps01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_ps01_port_network_role_tag:
+      type: string
+      required: true
+    port_ps01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+  node_templates:
+    ps_server_ps01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_1:
+          capability: tosca.capabilities.network.Bindable
+          node: ps_server_ps01_port
+          relationship: tosca.relationships.network.BindsTo
+    ps_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.ps_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_ps_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_ps_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_ps_server_user_data_format
+          - index_value
+    ps_server_ps01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_ps01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_ps01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_ps01_port_ip_requirements
+        network_role_tag:
+          get_input: port_ps01_port_network_role_tag
+        mac_requirements:
+          get_input: port_ps01_port_mac_requirements
+        order:
+          get_input: port_ps01_port_order
+        network_role:
+          get_input: port_ps01_port_network_role
+        subnetpoolid:
+          get_input: port_ps01_port_subnetpoolid
+        network:
+          get_input:
+          - port_ps01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: ps_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.ps_server
+    capabilities:
+      network.incoming.packets.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.packets.rate
+      instance_ps_server:
+      - ps_server
+      - instance
+      network.outpoing.packets_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outpoing.packets
+      host_ps_server:
+      - ps_server
+      - host
+      network.incoming.packets_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.packets
+      cpu.delta_ps_server:
+      - ps_server
+      - cpu.delta
+      disk.write.bytes.rate_ps_server:
+      - ps_server
+      - disk.write.bytes.rate
+      feature_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - feature
+      feature_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - feature
+      feature_ps_server:
+      - ps_server
+      - feature
+      disk.root.size_ps_server:
+      - ps_server
+      - disk.root.size
+      disk.device.read.requests.rate_ps_server:
+      - ps_server
+      - disk.device.read.requests.rate
+      cpu_ps_server:
+      - ps_server
+      - cpu
+      disk.device.write.bytes_ps_server:
+      - ps_server
+      - disk.device.write.bytes
+      disk.device.read.bytes_ps_server:
+      - ps_server
+      - disk.device.read.bytes
+      disk.read.bytes_ps_server:
+      - ps_server
+      - disk.read.bytes
+      disk.device.iops_ps_server:
+      - ps_server
+      - disk.device.iops
+      network.outgoing.packets.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outgoing.packets.rate
+      disk.device.latency_ps_server:
+      - ps_server
+      - disk.device.latency
+      disk.read.bytes.rate_ps_server:
+      - ps_server
+      - disk.read.bytes.rate
+      memory_ps_server:
+      - ps_server
+      - memory
+      scalable_ps_server:
+      - ps_server
+      - scalable
+      disk.write.requests.rate_ps_server:
+      - ps_server
+      - disk.write.requests.rate
+      disk.write.requests_ps_server:
+      - ps_server
+      - disk.write.requests
+      disk.latency_ps_server:
+      - ps_server
+      - disk.latency
+      disk.ephemeral.size_ps_server:
+      - ps_server
+      - disk.ephemeral.size
+      disk.device.capacity_ps_server:
+      - ps_server
+      - disk.device.capacity
+      disk.iops_ps_server:
+      - ps_server
+      - disk.iops
+      disk.device.read.bytes.rate_ps_server:
+      - ps_server
+      - disk.device.read.bytes.rate
+      cpu_util_ps_server:
+      - ps_server
+      - cpu_util
+      memory.resident_ps_server:
+      - ps_server
+      - memory.resident
+      network.incoming.bytes_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.bytes
+      disk.device.read.requests_ps_server:
+      - ps_server
+      - disk.device.read.requests
+      disk.write.bytes_ps_server:
+      - ps_server
+      - disk.write.bytes
+      feature_template_Vlan_1_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - feature_template_Vlan_1
+      network.outgoing.bytes.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outgoing.bytes.rate
+      disk.device.write.requests.rate_ps_server:
+      - ps_server
+      - disk.device.write.requests.rate
+      disk.read.requests_ps_server:
+      - ps_server
+      - disk.read.requests
+      disk.allocation_ps_server:
+      - ps_server
+      - disk.allocation
+      memory.usage_ps_server:
+      - ps_server
+      - memory.usage
+      binding_ps_server:
+      - ps_server
+      - binding
+      attachment_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - attachment
+      os_ps_server:
+      - ps_server
+      - os
+      disk.device.usage_ps_server:
+      - ps_server
+      - disk.device.usage
+      binding_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - binding
+      forwarder_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - forwarder
+      disk.device.write.bytes.rate_ps_server:
+      - ps_server
+      - disk.device.write.bytes.rate
+      vcpus_ps_server:
+      - ps_server
+      - vcpus
+      disk.usage_ps_server:
+      - ps_server
+      - disk.usage
+      disk.device.write.requests_ps_server:
+      - ps_server
+      - disk.device.write.requests
+      endpoint_ps_server:
+      - ps_server
+      - endpoint
+      disk.capacity_ps_server:
+      - ps_server
+      - disk.capacity
+      network.incoming.bytes.rate_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.incoming.bytes.rate
+      disk.device.allocation_ps_server:
+      - ps_server
+      - disk.device.allocation
+      network.outgoing.bytes_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - network.outgoing.bytes
+    requirements:
+      dependency_ps_server:
+      - ps_server
+      - dependency
+      dependency_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - dependency
+      link_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - link
+      dependency_ps_server_ps01_port:
+      - ps_server_ps01_port
+      - dependency
+      dependency_template_Vlan_1_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - dependency_template_Vlan_1
+      link_template_Vlan_1_ps_server_ps01_port_nested:
+      - ps_server_ps01_port_nested
+      - link_template_Vlan_1
+      local_storage_ps_server:
+      - ps_server
+      - 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/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/regularNestedSubInterface/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..a82a056
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    vlan_ids:
+      hidden: false
+      immutable: false
+      type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+    net2:
+      hidden: false
+      immutable: false
+      type: string
+    lb_st_vlan_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+    net1:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_instance_index:
+      hidden: false
+      immutable: false
+      type: float
+  node_templates:
+    template_Vlan_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: p1
+        name:
+          str_replace:
+            template: $NAME$VLAN
+            params:
+              $NAME:
+                get_input: subinterface_name_prefix
+              $VLAN:
+                get_input:
+                - vlan_ids
+                - get_input: subinterface_instance_index
+        virtual_network_refs:
+        - get_input: net1
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input: lb_st_vlan_type_oam
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ip_address
+              ip_prefix_len: 32
+            mac:
+              get_input: mac_address
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ipv6_address
+              ip_prefix_len: 128
+            mac:
+              get_input: mac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    nested_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested.yml
+        description: cmaui server template for vMMSC
+      members:
+      - template_Vlan_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+    capabilities:
+      feature_template_Vlan_1:
+      - template_Vlan_1
+      - feature
+    requirements:
+      dependency_template_Vlan_1:
+      - template_Vlan_1
+      - dependency
+      link_template_Vlan_1:
+      - template_Vlan_1
+      - link
+      binding_template_Vlan_1:
+      - template_Vlan_1
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..c3b0532
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template with 2 compute",
+  "version": "2018-02-01",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true",
+      "data": [
+        {
+          "file": "heat_env.env",
+          "type": "HEAT_ENV"
+        }
+      ]
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/heat_env.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/heat_env.env
new file mode 100644 (file)
index 0000000..8ce5738
--- /dev/null
@@ -0,0 +1,45 @@
+parameters:
+  pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002
+  pd_image_name: MOG_BASE_8.0
+  pd_flavor_name: m3.xlarge
+  oam_server_names: ZRDM1MOGX01OAM001,ZRDM1MOGX01OAM002
+  oam_image_name: MOG_BASE_8.0
+  oam_flavor_name: m3.xlarge
+  sm_server_names: ZRDM1MOGX01MSM001,ZRDM1MOGX01MSM002
+  sm_image_name: MOG_BASE_8.0
+  sm_flavor_name: m2.xlarge4
+  ps_server_names: ZRDM1MOGX01MPS001,ZRDM1MOGX01MPS002,ZRDM1MOGX01MPS003,ZRDM1MOGX01MPS004
+  ps_image_name: MOG_BASE_8.0
+  ps_flavor_name: m3.xlarge
+  cm_server_names: ZRDM1MOGX01MCM001
+  cm_image_name: MOG_BASE_8.0
+  cm_flavor_name: m3.xlarge
+  availabilityzone_name: nova
+  oam_net_name: oam_protected_net_0
+  oam_net_ips: 107.250.172.213,107.250.172.214,107.250.172.215,107.250.172.216,107.250.172.217
+  #internet_net_name: dmz_protected_net_0
+  #internet_net_ips: 107.239.53.4,107.239.53.5
+ # internet_net_floating_ip: 107.239.53.6
+  sl_net_name: exn_protected_net_0
+  sl_net_ips: 107.239.45.4,107.239.45.5
+  sl_net_floating_ip: 107.239.45.6
+  repl_net_name: cor_direct_net_0
+  repl_net_ips: 107.239.33.57,107.239.33.58
+  rx_net_name: cor_direct_net_1
+  rx_net_ips: 107.239.34.3,107.239.34.4
+  rx_net_floating_ip: 107.239.34.5
+  ran_net_name: gn_direct_net_0
+  ran_net_ips: 107.239.36.3,107.239.36.4
+  ran_net_floating_ip: 107.239.36.5
+  dummy_net_name_0: mog_dummy_0
+  dummy_net_start_0: 169.254.1.4
+  dummy_net_end_0: 169.254.1.254
+  dummy_net_cidr_0: 169.254.1.0/24
+  dummy_net_netmask_0: 255.255.255.0
+  dummy_net_name_1: mog_dummy_1
+  csb_net_name: int_mog_csb_net
+  csb_net_ips: 172.26.0.10,172.26.0.11,172.26.0.12,172.26.0.13,172.26.0.14,172.26.0.15,172.26.0.16,172.26.0.17,172.26.0.18,172.26.0.19,172.26.0.20
+  csb_net_start: 172.26.0.1
+  csb_net_end: 172.26.0.254
+  csb_net_cidr: 172.26.0.0/24
+  csb_net_netmask: 255.255.255.0
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/main.yml
new file mode 100644 (file)
index 0000000..c3bb9b7
--- /dev/null
@@ -0,0 +1,235 @@
+heat_template_version: 2018-02-01
+
+description: heat template that creates MOG stack
+
+parameters:
+  jsa_net_name:
+    type: string
+    description: network name of jsa log network
+  pd_server_names:
+    type: comma_delimited_list
+    label: PD server names
+    description: name of the PD instance
+  pd_image_name:
+    type: string
+    label: image name
+    description: PD image name
+  pd_flavor_name:
+    type: string
+    label: PD flavor name
+    description: flavor name of PD instance
+  oam_server_names:
+    type: comma_delimited_list
+    label: OAM server names
+    description: name of the OAM instance
+  oam_image_name:
+    type: string
+    label: image name
+    description: OAM image name
+  oam_flavor_name:
+    type: string
+    label: OAM flavor name
+    description: flavor name of OAM instance
+  sm_server_names:
+    type: comma_delimited_list
+    label: SM server names
+    description: name of the SM instance
+  sm_image_name:
+    type: string
+    label: image name
+    description: SM image name
+  sm_flavor_name:
+    type: string
+    label: SM flavor name
+    description: flavor name of SM instance
+  ps_server_names:
+    type: comma_delimited_list
+    label: PS server names
+    description: name of the PS instance
+  ps_image_name:
+    type: string
+    label: PS image name
+    description: PS image name
+  ps_flavor_name:
+    type: string
+    label: PS flavor name
+    description: flavor name of PS instance
+  cm_server_names:
+    type: comma_delimited_list
+    label: CM server names
+    description: name of the CM instance
+  cm_image_name:
+    type: string
+    label: image name
+    description: CM image name
+  cm_flavor_name:
+    type: string
+    label: CM flavor name
+    description: flavor name of CM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  oam_net_name:
+    type: string
+    label: oam network name
+    description: name of the oam network
+  oam_net_ips:
+    type: comma_delimited_list
+    label: internet network ips
+    description: ip of the OAM network
+  sl_net_name:
+    type: string
+    label: silver lining network name
+    description: id of the sl network
+  sl_net_ips:
+    type: comma_delimited_list
+    label: silver lining network ips
+    description: ips of the sl network
+  sl_net_floating_ip:
+    type: string
+    label: mog sl net virtual ip
+    description: mog sl net virtual ip
+  repl_net_name:
+    type: string
+    label: Replication network name
+    description: name of the replication network
+  repl_net_ips:
+    type: comma_delimited_list
+    label: repl network ips
+    description: ips of repl network
+  rx_net_name:
+    type: string
+    label: Rx network name
+    description: Rx network name
+  rx_net_ips:
+    type: comma_delimited_list
+    label: Rx network ips
+    description: Rx network ips
+  rx_net_floating_ip:
+    type: string
+    label: mog rx net virtual ip
+    description: mog rx net virtual ip
+  ran_net_name:
+    type: string
+    label: RAN network name
+    description: RAN network name
+  ran_net_ips:
+    type: comma_delimited_list
+    label: RAN network ips
+    description: RAN network ip
+  ran_net_floating_ip:
+    type: string
+    label: mog ran net virtual ip
+    description: mog ran net virtual ip
+  csb_net_name:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  csb_net_start:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  csb_net_end:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  csb_net_cidr:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  csb_net_netmask:
+    type: string
+    description: CSB internal network subnet mask
+  csb_net_ips:
+    type: comma_delimited_list
+    description: mog_csb_net IP addresses
+  dummy_net_name_0:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  dummy_net_start_0:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  dummy_net_end_0:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  dummy_net_cidr_0:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  dummy_net_netmask_0:
+    type: string
+    description: CSB internal network subnet mask
+  dummy_net_name_1:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+
+resources:
+  server_pd_01:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_0}
+      user_data_format:  RAW
+
+  pd01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+
+  server_pd_02:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 1]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: ps01_port_0}
+      user_data_format:  RAW
+
+  ps01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  test_resourceGroup:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 9
+      resource_def:
+        type: nested.yml
+        properties:
+          p1: { get_resource: pd01_port_0}
+          net1: { get_resource: test_net1}
+          
+  test_resourceGroup2:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 9
+      resource_def:
+        type: nested.yml
+        properties:
+          p1: { get_resource: ps01_port_0}
+          net1: { get_resource: test_net1}
+          
+  test_net1:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True
+
+  test_net2:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True      
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/in/nested.yml
new file mode 100644 (file)
index 0000000..6a24418
--- /dev/null
@@ -0,0 +1,72 @@
+heat_template_version: 2018-02-01
+
+description: cmaui server template for vMMSC
+
+parameters:
+  p1:
+    type: string
+  p2:
+    type: string
+  net1:
+    type: string
+  net2:
+    type: string
+  lb_st_vlan_type_oam:
+    description: dummy
+    type: string
+  mac_address:
+    type: string
+  virtual_ip_address:
+    type: string
+  virtual_ipv6_address:
+    type: string
+  vlan_ids:
+    type: string
+  subinterface_name_prefix:
+    type: string
+  subinterface_instance_index:
+    type: number
+resources:
+
+  template_Vlan_vmi_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME$VLAN
+          params:
+            $NAME: { get_param: subinterface_name_prefix }
+            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+      virtual_machine_interface_properties:
+        {
+          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
+        }
+      virtual_machine_interface_mac_addresses:
+        {
+        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+        }
+      virtual_machine_interface_allowed_address_pairs:
+        {
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+              }
+            },
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+              }
+            }
+          ]
+        }
+      virtual_network_refs: [{ get_param: net1 }]
+      virtual_machine_interface_refs: [{ get_param: p1 }]
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..8ae44f8
--- /dev/null
@@ -0,0 +1,1006 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.pd_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_ps01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_ps01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_pd_server_ps01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_vmi_1_pd_server_ps01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_vmi_1_pd_server_ps01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_ps01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_ps01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_ps01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_ps01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_ps01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_vmi_1_pd_server_ps01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_ps01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_ps01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_ps01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.pd_server_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pd01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_pd01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_pd01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      vlan_ids:
+        type: string
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ipv6_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ip_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net2:
+        type: string
+        required: true
+        status: SUPPORTED
+      lb_st_vlan_type_oam:
+        type: string
+        description: dummy
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net1:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_name_prefix:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_instance_index:
+        type: float
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_template_Vlan_vmi_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_vmi_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_template_Vlan_vmi_1:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_template_Vlan_vmi_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..4f5cc61
--- /dev/null
@@ -0,0 +1,808 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_flavor_name
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_1
+      type: string
+      description: csb internal network name
+      default: mog_dummy_1
+    dummy_net_name_0:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_0
+      type: string
+      description: csb internal network name
+      default: mog_dummy_0
+    dummy_net_cidr_0:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_cidr_0
+      type: string
+      description: csb internal cidr
+      default: 169.254.1.0/24
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: availabilityzone_name
+      type: string
+      description: availabilityzone name
+      default: nova
+    sl_net_floating_ip:
+      label: mog sl net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_floating_ip
+      type: string
+      description: mog sl net virtual ip
+      default: 107.239.45.6
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_ips
+      type: list
+      description: ips of repl network
+      default:
+      - 107.239.33.57
+      - 107.239.33.58
+      entry_schema:
+        type: string
+    sl_net_name:
+      label: silver lining network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_name
+      type: string
+      description: id of the sl network
+      default: exn_protected_net_0
+    rx_net_floating_ip:
+      label: mog rx net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_floating_ip
+      type: string
+      description: mog rx net virtual ip
+      default: 107.239.34.5
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_image_name
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_server_names
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    sm_server_names:
+      label: SM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_server_names
+      type: list
+      description: name of the SM instance
+      default:
+      - ZRDM1MOGX01MSM001
+      - ZRDM1MOGX01MSM002
+      entry_schema:
+        type: string
+    csb_net_start:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_start
+      type: string
+      description: csb internal start
+      default: 172.26.0.1
+    dummy_net_netmask_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_netmask_0
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    cm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_image_name
+      type: string
+      description: CM image name
+      default: MOG_BASE_8.0
+    ran_net_floating_ip:
+      label: mog ran net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_floating_ip
+      type: string
+      description: mog ran net virtual ip
+      default: 107.239.36.5
+    sm_flavor_name:
+      label: SM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_flavor_name
+      type: string
+      description: flavor name of SM instance
+      default: m2.xlarge4
+    ran_net_ips:
+      label: RAN network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_ips
+      type: list
+      description: RAN network ip
+      default:
+      - 107.239.36.3
+      - 107.239.36.4
+      entry_schema:
+        type: string
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_image_name
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    dummy_net_end_0:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_end_0
+      type: string
+      description: csb internal end
+      default: 169.254.1.254
+    oam_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_image_name
+      type: string
+      description: OAM image name
+      default: MOG_BASE_8.0
+    oam_server_names:
+      label: OAM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_server_names
+      type: list
+      description: name of the OAM instance
+      default:
+      - ZRDM1MOGX01OAM001
+      - ZRDM1MOGX01OAM002
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_ips
+      type: list
+      description: ip of the OAM network
+      default:
+      - 107.250.172.213
+      - 107.250.172.214
+      - 107.250.172.215
+      - 107.250.172.216
+      - 107.250.172.217
+      entry_schema:
+        type: string
+    csb_net_cidr:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_cidr
+      type: string
+      description: csb internal cidr
+      default: 172.26.0.0/24
+    ran_net_name:
+      label: RAN network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_name
+      type: string
+      description: RAN network name
+      default: gn_direct_net_0
+    cm_server_names:
+      label: CM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_server_names
+      type: list
+      description: name of the CM instance
+      default:
+      - ZRDM1MOGX01MCM001
+      entry_schema:
+        type: string
+    sl_net_ips:
+      label: silver lining network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_ips
+      type: list
+      description: ips of the sl network
+      default:
+      - 107.239.45.4
+      - 107.239.45.5
+      entry_schema:
+        type: string
+    rx_net_name:
+      label: Rx network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_name
+      type: string
+      description: Rx network name
+      default: cor_direct_net_1
+    csb_net_netmask:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_netmask
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_flavor_name
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_name
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+    csb_net_end:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_end
+      type: string
+      description: csb internal end
+      default: 172.26.0.254
+    dummy_net_start_0:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_start_0
+      type: string
+      description: csb internal start
+      default: 169.254.1.4
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: jsa_net_name
+      type: string
+      description: network name of jsa log network
+    cm_flavor_name:
+      label: CM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_flavor_name
+      type: string
+      description: flavor name of CM instance
+      default: m3.xlarge
+    sm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_image_name
+      type: string
+      description: SM image name
+      default: MOG_BASE_8.0
+    csb_net_name:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_name
+      type: string
+      description: csb internal network name
+      default: int_mog_csb_net
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_server_names
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_ips
+      type: list
+      description: mog_csb_net IP addresses
+      default:
+      - 172.26.0.10
+      - 172.26.0.11
+      - 172.26.0.12
+      - 172.26.0.13
+      - 172.26.0.14
+      - 172.26.0.15
+      - 172.26.0.16
+      - 172.26.0.17
+      - 172.26.0.18
+      - 172.26.0.19
+      - 172.26.0.20
+      entry_schema:
+        type: string
+    ps_flavor_name:
+      label: PS flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_flavor_name
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    rx_net_ips:
+      label: Rx network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_ips
+      type: list
+      description: Rx network ips
+      default:
+      - 107.239.34.3
+      - 107.239.34.4
+      entry_schema:
+        type: string
+  node_templates:
+    test_net2:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    test_net1:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - ps01_port_0
+        vm_image_name:
+          get_input: pd_image_name
+        port_ps01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_ps01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_ps01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_ps01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_vmi_1_pd_server_ps01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+    abstract_pd_server_1:
+      type: org.openecomp.resource.abstract.nodes.pd_server_1
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - pd01_port_0
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_pd01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: heat template that creates MOG stack
+      members:
+      - test_net2
+      - test_net1
+      - abstract_pd_server
+      - abstract_pd_server_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..24545b0
--- /dev/null
@@ -0,0 +1,344 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_ps01_port_subnetpoolid:
+      type: string
+      required: true
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_order:
+      type: integer
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_ps01_port_network_role:
+      type: string
+      required: true
+    port_ps01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_ps01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_ps01_port_network_role_tag:
+      type: string
+      required: true
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_ps01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+  node_templates:
+    pd_server_ps01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count: 9
+          mandatory: true
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_vmi_1:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server_ps01_port
+          relationship: tosca.relationships.network.BindsTo
+    pd_server_ps01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_ps01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_ps01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_ps01_port_ip_requirements
+        network_role_tag:
+          get_input: port_ps01_port_network_role_tag
+        mac_requirements:
+          get_input: port_ps01_port_mac_requirements
+        order:
+          get_input: port_ps01_port_order
+        network_role:
+          get_input: port_ps01_port_network_role
+        subnetpoolid:
+          get_input: port_ps01_port_subnetpoolid
+        network:
+          get_input:
+          - port_ps01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.incoming.bytes.rate_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.incoming.bytes.rate
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.outgoing.packets.rate_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.outgoing.packets.rate
+      network.incoming.packets_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.incoming.packets
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      feature_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - feature
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      network.outgoing.bytes.rate_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.outgoing.bytes.rate
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      network.outpoing.packets_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.outpoing.packets
+      feature_pd_server_ps01_port_nested:
+      - pd_server_ps01_port_nested
+      - feature
+      network.incoming.packets.rate_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.incoming.packets.rate
+      feature_pd_server:
+      - pd_server
+      - feature
+      forwarder_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - forwarder
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      network.outgoing.bytes_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.outgoing.bytes
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      feature_template_Vlan_vmi_1_pd_server_ps01_port_nested:
+      - pd_server_ps01_port_nested
+      - feature_template_Vlan_vmi_1
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      binding_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - binding
+      network.incoming.bytes_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - network.incoming.bytes
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      attachment_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - attachment
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      link_template_Vlan_vmi_1_pd_server_ps01_port_nested:
+      - pd_server_ps01_port_nested
+      - link_template_Vlan_vmi_1
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      dependency_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - dependency
+      dependency_template_Vlan_vmi_1_pd_server_ps01_port_nested:
+      - pd_server_ps01_port_nested
+      - dependency_template_Vlan_vmi_1
+      link_pd_server_ps01_port:
+      - pd_server_ps01_port
+      - link
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_pd_server_ps01_port_nested:
+      - pd_server_ps01_port_nested
+      - dependency
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/Nested_pd_server_1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..36baabb
--- /dev/null
@@ -0,0 +1,344 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_order:
+      type: integer
+      required: true
+    port_pd01_port_subnetpoolid:
+      type: string
+      required: true
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server_pd01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count: 9
+          mandatory: true
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_vmi_1:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server_pd01_port
+          relationship: tosca.relationships.network.BindsTo
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        order:
+          get_input: port_pd01_port_order
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_1
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      network.outgoing.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.packets.rate
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      network.incoming.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      attachment_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - attachment
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      feature_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature_template_Vlan_vmi_1
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      feature_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes.rate
+      network.incoming.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      network.outpoing.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outpoing.packets
+      forwarder_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - forwarder
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      feature_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - feature
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - link_template_Vlan_vmi_1
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      dependency_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency_template_Vlan_vmi_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeDiffPortSubInterface/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..bbc48d7
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    vlan_ids:
+      hidden: false
+      immutable: false
+      type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+    net2:
+      hidden: false
+      immutable: false
+      type: string
+    lb_st_vlan_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+    net1:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_instance_index:
+      hidden: false
+      immutable: false
+      type: float
+  node_templates:
+    template_Vlan_vmi_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: p1
+        name:
+          str_replace:
+            template: $NAME$VLAN
+            params:
+              $NAME:
+                get_input: subinterface_name_prefix
+              $VLAN:
+                get_input:
+                - vlan_ids
+                - get_input: subinterface_instance_index
+        virtual_network_refs:
+        - get_input: net1
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input: lb_st_vlan_type_oam
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ip_address
+              ip_prefix_len: 32
+            mac:
+              get_input: mac_address
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ipv6_address
+              ip_prefix_len: 128
+            mac:
+              get_input: mac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    nested_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested.yml
+        description: cmaui server template for vMMSC
+      members:
+      - template_Vlan_vmi_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+    capabilities:
+      feature_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - feature
+    requirements:
+      link_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - link
+      dependency_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - dependency
+      binding_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - binding
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..c3b0532
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template with 2 compute",
+  "version": "2018-02-01",
+  "data": [
+    {
+      "file": "main.yml",
+      "type": "HEAT",
+      "isBase": "true",
+      "data": [
+        {
+          "file": "heat_env.env",
+          "type": "HEAT_ENV"
+        }
+      ]
+    },
+    {
+      "file": "nested.yml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/heat_env.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/heat_env.env
new file mode 100644 (file)
index 0000000..8ce5738
--- /dev/null
@@ -0,0 +1,45 @@
+parameters:
+  pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002
+  pd_image_name: MOG_BASE_8.0
+  pd_flavor_name: m3.xlarge
+  oam_server_names: ZRDM1MOGX01OAM001,ZRDM1MOGX01OAM002
+  oam_image_name: MOG_BASE_8.0
+  oam_flavor_name: m3.xlarge
+  sm_server_names: ZRDM1MOGX01MSM001,ZRDM1MOGX01MSM002
+  sm_image_name: MOG_BASE_8.0
+  sm_flavor_name: m2.xlarge4
+  ps_server_names: ZRDM1MOGX01MPS001,ZRDM1MOGX01MPS002,ZRDM1MOGX01MPS003,ZRDM1MOGX01MPS004
+  ps_image_name: MOG_BASE_8.0
+  ps_flavor_name: m3.xlarge
+  cm_server_names: ZRDM1MOGX01MCM001
+  cm_image_name: MOG_BASE_8.0
+  cm_flavor_name: m3.xlarge
+  availabilityzone_name: nova
+  oam_net_name: oam_protected_net_0
+  oam_net_ips: 107.250.172.213,107.250.172.214,107.250.172.215,107.250.172.216,107.250.172.217
+  #internet_net_name: dmz_protected_net_0
+  #internet_net_ips: 107.239.53.4,107.239.53.5
+ # internet_net_floating_ip: 107.239.53.6
+  sl_net_name: exn_protected_net_0
+  sl_net_ips: 107.239.45.4,107.239.45.5
+  sl_net_floating_ip: 107.239.45.6
+  repl_net_name: cor_direct_net_0
+  repl_net_ips: 107.239.33.57,107.239.33.58
+  rx_net_name: cor_direct_net_1
+  rx_net_ips: 107.239.34.3,107.239.34.4
+  rx_net_floating_ip: 107.239.34.5
+  ran_net_name: gn_direct_net_0
+  ran_net_ips: 107.239.36.3,107.239.36.4
+  ran_net_floating_ip: 107.239.36.5
+  dummy_net_name_0: mog_dummy_0
+  dummy_net_start_0: 169.254.1.4
+  dummy_net_end_0: 169.254.1.254
+  dummy_net_cidr_0: 169.254.1.0/24
+  dummy_net_netmask_0: 255.255.255.0
+  dummy_net_name_1: mog_dummy_1
+  csb_net_name: int_mog_csb_net
+  csb_net_ips: 172.26.0.10,172.26.0.11,172.26.0.12,172.26.0.13,172.26.0.14,172.26.0.15,172.26.0.16,172.26.0.17,172.26.0.18,172.26.0.19,172.26.0.20
+  csb_net_start: 172.26.0.1
+  csb_net_end: 172.26.0.254
+  csb_net_cidr: 172.26.0.0/24
+  csb_net_netmask: 255.255.255.0
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/main.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/main.yml
new file mode 100644 (file)
index 0000000..9f15d9d
--- /dev/null
@@ -0,0 +1,234 @@
+heat_template_version: 2018-02-01
+
+description: heat template that creates MOG stack
+
+parameters:
+  jsa_net_name:
+    type: string
+    description: network name of jsa log network
+  pd_server_names:
+    type: comma_delimited_list
+    label: PD server names
+    description: name of the PD instance
+  pd_image_name:
+    type: string
+    label: image name
+    description: PD image name
+  pd_flavor_name:
+    type: string
+    label: PD flavor name
+    description: flavor name of PD instance
+  oam_server_names:
+    type: comma_delimited_list
+    label: OAM server names
+    description: name of the OAM instance
+  oam_image_name:
+    type: string
+    label: image name
+    description: OAM image name
+  oam_flavor_name:
+    type: string
+    label: OAM flavor name
+    description: flavor name of OAM instance
+  sm_server_names:
+    type: comma_delimited_list
+    label: SM server names
+    description: name of the SM instance
+  sm_image_name:
+    type: string
+    label: image name
+    description: SM image name
+  sm_flavor_name:
+    type: string
+    label: SM flavor name
+    description: flavor name of SM instance
+  ps_server_names:
+    type: comma_delimited_list
+    label: PS server names
+    description: name of the PS instance
+  ps_image_name:
+    type: string
+    label: PS image name
+    description: PS image name
+  ps_flavor_name:
+    type: string
+    label: PS flavor name
+    description: flavor name of PS instance
+  cm_server_names:
+    type: comma_delimited_list
+    label: CM server names
+    description: name of the CM instance
+  cm_image_name:
+    type: string
+    label: image name
+    description: CM image name
+  cm_flavor_name:
+    type: string
+    label: CM flavor name
+    description: flavor name of CM instance
+  availabilityzone_name:
+    type: string
+    label: availabilityzone name
+    description: availabilityzone name
+  oam_net_name:
+    type: string
+    label: oam network name
+    description: name of the oam network
+  oam_net_ips:
+    type: comma_delimited_list
+    label: internet network ips
+    description: ip of the OAM network
+  sl_net_name:
+    type: string
+    label: silver lining network name
+    description: id of the sl network
+  sl_net_ips:
+    type: comma_delimited_list
+    label: silver lining network ips
+    description: ips of the sl network
+  sl_net_floating_ip:
+    type: string
+    label: mog sl net virtual ip
+    description: mog sl net virtual ip
+  repl_net_name:
+    type: string
+    label: Replication network name
+    description: name of the replication network
+  repl_net_ips:
+    type: comma_delimited_list
+    label: repl network ips
+    description: ips of repl network
+  rx_net_name:
+    type: string
+    label: Rx network name
+    description: Rx network name
+  rx_net_ips:
+    type: comma_delimited_list
+    label: Rx network ips
+    description: Rx network ips
+  rx_net_floating_ip:
+    type: string
+    label: mog rx net virtual ip
+    description: mog rx net virtual ip
+  ran_net_name:
+    type: string
+    label: RAN network name
+    description: RAN network name
+  ran_net_ips:
+    type: comma_delimited_list
+    label: RAN network ips
+    description: RAN network ip
+  ran_net_floating_ip:
+    type: string
+    label: mog ran net virtual ip
+    description: mog ran net virtual ip
+  csb_net_name:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  csb_net_start:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  csb_net_end:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  csb_net_cidr:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  csb_net_netmask:
+    type: string
+    description: CSB internal network subnet mask
+  csb_net_ips:
+    type: comma_delimited_list
+    description: mog_csb_net IP addresses
+  dummy_net_name_0:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+  dummy_net_start_0:
+    type: string
+    label: csb internal start
+    description: csb internal start
+  dummy_net_end_0:
+    type: string
+    label: csb internal end
+    description: csb internal end
+  dummy_net_cidr_0:
+    type: string
+    label: csb ineternal cidr
+    description: csb internal cidr
+  dummy_net_netmask_0:
+    type: string
+    description: CSB internal network subnet mask
+  dummy_net_name_1:
+    type: string
+    label: csb internal network name
+    description: csb internal network name
+
+resources:
+  server_pd_01:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 0]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_0}
+      user_data_format:  RAW
+
+  pd01_port_0:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  server_pd_02:
+    type: OS::Nova::Server
+    properties:
+      name: {get_param: [pd_server_names, 1]}
+      image: {get_param: pd_image_name}
+      flavor: {get_param: pd_flavor_name}
+      availability_zone: {get_param: availabilityzone_name}
+      networks:
+        - port: {get_resource: pd01_port_1}
+      user_data_format:  RAW
+
+  pd01_port_1:
+    type: OS::Neutron::Port
+    properties:
+      network: {get_param: oam_net_name}
+
+  test_resourceGroup:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 9
+      resource_def:
+        type: nested.yml
+        properties:
+          p1: { get_resource: pd01_port_0}
+          net1: { get_resource: test_net1}
+          
+  test_resourceGroup2:
+    type: OS::Heat::ResourceGroup
+    properties:
+      count: 9
+      resource_def:
+        type: nested1.yml
+        properties:
+          p1: { get_resource: pd01_port_1}
+          net1: { get_resource: test_net1}
+          
+  test_net1:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True
+
+  test_net2:
+    type: OS::Neutron::Net
+    properties:
+      name: {get_param: jsa_net_name}
+      shared: True      
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/nested.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/nested.yml
new file mode 100644 (file)
index 0000000..6a24418
--- /dev/null
@@ -0,0 +1,72 @@
+heat_template_version: 2018-02-01
+
+description: cmaui server template for vMMSC
+
+parameters:
+  p1:
+    type: string
+  p2:
+    type: string
+  net1:
+    type: string
+  net2:
+    type: string
+  lb_st_vlan_type_oam:
+    description: dummy
+    type: string
+  mac_address:
+    type: string
+  virtual_ip_address:
+    type: string
+  virtual_ipv6_address:
+    type: string
+  vlan_ids:
+    type: string
+  subinterface_name_prefix:
+    type: string
+  subinterface_instance_index:
+    type: number
+resources:
+
+  template_Vlan_vmi_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME$VLAN
+          params:
+            $NAME: { get_param: subinterface_name_prefix }
+            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+      virtual_machine_interface_properties:
+        {
+          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
+        }
+      virtual_machine_interface_mac_addresses:
+        {
+        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+        }
+      virtual_machine_interface_allowed_address_pairs:
+        {
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+              }
+            },
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+              }
+            }
+          ]
+        }
+      virtual_network_refs: [{ get_param: net1 }]
+      virtual_machine_interface_refs: [{ get_param: p1 }]
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/nested1.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/in/nested1.yml
new file mode 100644 (file)
index 0000000..6a24418
--- /dev/null
@@ -0,0 +1,72 @@
+heat_template_version: 2018-02-01
+
+description: cmaui server template for vMMSC
+
+parameters:
+  p1:
+    type: string
+  p2:
+    type: string
+  net1:
+    type: string
+  net2:
+    type: string
+  lb_st_vlan_type_oam:
+    description: dummy
+    type: string
+  mac_address:
+    type: string
+  virtual_ip_address:
+    type: string
+  virtual_ipv6_address:
+    type: string
+  vlan_ids:
+    type: string
+  subinterface_name_prefix:
+    type: string
+  subinterface_instance_index:
+    type: number
+resources:
+
+  template_Vlan_vmi_1:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME$VLAN
+          params:
+            $NAME: { get_param: subinterface_name_prefix }
+            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+      virtual_machine_interface_properties:
+        {
+          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
+        }
+      virtual_machine_interface_mac_addresses:
+        {
+        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+        }
+      virtual_machine_interface_allowed_address_pairs:
+        {
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+              }
+            },
+            {
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+              {
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+              }
+            }
+          ]
+        }
+      virtual_network_refs: [{ get_param: net1 }]
+      virtual_machine_interface_refs: [{ get_param: p1 }]
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..44f15ea
--- /dev/null
@@ -0,0 +1,964 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.pd_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pd01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_pd01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_pd01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.pd_server_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_p1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_nested_net1:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_pd_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pd01_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pd01_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      scalable_pd_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_pd_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_pd_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pd01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port_nested:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd_server_pd01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_pd_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_pd_server_pd01_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_pd01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_pd_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.subinterface.nested:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      vlan_ids:
+        type: string
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ipv6_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      virtual_ip_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net2:
+        type: string
+        required: true
+        status: SUPPORTED
+      lb_st_vlan_type_oam:
+        type: string
+        description: dummy
+        required: true
+        status: SUPPORTED
+      mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      net1:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_name_prefix:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_instance_index:
+        type: float
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_template_Vlan_vmi_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_template_Vlan_vmi_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_template_Vlan_vmi_1:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_template_Vlan_vmi_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..2d7f3e2
--- /dev/null
@@ -0,0 +1,799 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    pd_flavor_name:
+      label: PD flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_flavor_name
+      type: string
+      description: flavor name of PD instance
+      default: m3.xlarge
+    dummy_net_name_1:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_1
+      type: string
+      description: csb internal network name
+      default: mog_dummy_1
+    dummy_net_name_0:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_name_0
+      type: string
+      description: csb internal network name
+      default: mog_dummy_0
+    dummy_net_cidr_0:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_cidr_0
+      type: string
+      description: csb internal cidr
+      default: 169.254.1.0/24
+    availabilityzone_name:
+      label: availabilityzone name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: availabilityzone_name
+      type: string
+      description: availabilityzone name
+      default: nova
+    sl_net_floating_ip:
+      label: mog sl net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_floating_ip
+      type: string
+      description: mog sl net virtual ip
+      default: 107.239.45.6
+    repl_net_ips:
+      label: repl network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_ips
+      type: list
+      description: ips of repl network
+      default:
+      - 107.239.33.57
+      - 107.239.33.58
+      entry_schema:
+        type: string
+    sl_net_name:
+      label: silver lining network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_name
+      type: string
+      description: id of the sl network
+      default: exn_protected_net_0
+    rx_net_floating_ip:
+      label: mog rx net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_floating_ip
+      type: string
+      description: mog rx net virtual ip
+      default: 107.239.34.5
+    pd_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_image_name
+      type: string
+      description: PD image name
+      default: MOG_BASE_8.0
+    pd_server_names:
+      label: PD server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: pd_server_names
+      type: list
+      description: name of the PD instance
+      default:
+      - ZRDM1MOGX01MPD001
+      - ZRDM1MOGX01MPD002
+      entry_schema:
+        type: string
+    sm_server_names:
+      label: SM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_server_names
+      type: list
+      description: name of the SM instance
+      default:
+      - ZRDM1MOGX01MSM001
+      - ZRDM1MOGX01MSM002
+      entry_schema:
+        type: string
+    csb_net_start:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_start
+      type: string
+      description: csb internal start
+      default: 172.26.0.1
+    dummy_net_netmask_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_netmask_0
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    cm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_image_name
+      type: string
+      description: CM image name
+      default: MOG_BASE_8.0
+    ran_net_floating_ip:
+      label: mog ran net virtual ip
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_floating_ip
+      type: string
+      description: mog ran net virtual ip
+      default: 107.239.36.5
+    sm_flavor_name:
+      label: SM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_flavor_name
+      type: string
+      description: flavor name of SM instance
+      default: m2.xlarge4
+    ran_net_ips:
+      label: RAN network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_ips
+      type: list
+      description: RAN network ip
+      default:
+      - 107.239.36.3
+      - 107.239.36.4
+      entry_schema:
+        type: string
+    ps_image_name:
+      label: PS image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_image_name
+      type: string
+      description: PS image name
+      default: MOG_BASE_8.0
+    dummy_net_end_0:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_end_0
+      type: string
+      description: csb internal end
+      default: 169.254.1.254
+    oam_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_image_name
+      type: string
+      description: OAM image name
+      default: MOG_BASE_8.0
+    oam_server_names:
+      label: OAM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_server_names
+      type: list
+      description: name of the OAM instance
+      default:
+      - ZRDM1MOGX01OAM001
+      - ZRDM1MOGX01OAM002
+      entry_schema:
+        type: string
+    oam_net_name:
+      label: oam network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: name of the oam network
+      default: oam_protected_net_0
+    oam_net_ips:
+      label: internet network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_net_ips
+      type: list
+      description: ip of the OAM network
+      default:
+      - 107.250.172.213
+      - 107.250.172.214
+      - 107.250.172.215
+      - 107.250.172.216
+      - 107.250.172.217
+      entry_schema:
+        type: string
+    csb_net_cidr:
+      label: csb ineternal cidr
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_cidr
+      type: string
+      description: csb internal cidr
+      default: 172.26.0.0/24
+    ran_net_name:
+      label: RAN network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ran_net_name
+      type: string
+      description: RAN network name
+      default: gn_direct_net_0
+    cm_server_names:
+      label: CM server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_server_names
+      type: list
+      description: name of the CM instance
+      default:
+      - ZRDM1MOGX01MCM001
+      entry_schema:
+        type: string
+    sl_net_ips:
+      label: silver lining network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sl_net_ips
+      type: list
+      description: ips of the sl network
+      default:
+      - 107.239.45.4
+      - 107.239.45.5
+      entry_schema:
+        type: string
+    rx_net_name:
+      label: Rx network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_name
+      type: string
+      description: Rx network name
+      default: cor_direct_net_1
+    csb_net_netmask:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_netmask
+      type: string
+      description: CSB internal network subnet mask
+      default: 255.255.255.0
+    oam_flavor_name:
+      label: OAM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: oam_flavor_name
+      type: string
+      description: flavor name of OAM instance
+      default: m3.xlarge
+    repl_net_name:
+      label: Replication network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: repl_net_name
+      type: string
+      description: name of the replication network
+      default: cor_direct_net_0
+    csb_net_end:
+      label: csb internal end
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_end
+      type: string
+      description: csb internal end
+      default: 172.26.0.254
+    dummy_net_start_0:
+      label: csb internal start
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: dummy_net_start_0
+      type: string
+      description: csb internal start
+      default: 169.254.1.4
+    jsa_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: jsa_net_name
+      type: string
+      description: network name of jsa log network
+    cm_flavor_name:
+      label: CM flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: cm_flavor_name
+      type: string
+      description: flavor name of CM instance
+      default: m3.xlarge
+    sm_image_name:
+      label: image name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: sm_image_name
+      type: string
+      description: SM image name
+      default: MOG_BASE_8.0
+    csb_net_name:
+      label: csb internal network name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_name
+      type: string
+      description: csb internal network name
+      default: int_mog_csb_net
+    ps_server_names:
+      label: PS server names
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_server_names
+      type: list
+      description: name of the PS instance
+      default:
+      - ZRDM1MOGX01MPS001
+      - ZRDM1MOGX01MPS002
+      - ZRDM1MOGX01MPS003
+      - ZRDM1MOGX01MPS004
+      entry_schema:
+        type: string
+    csb_net_ips:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: csb_net_ips
+      type: list
+      description: mog_csb_net IP addresses
+      default:
+      - 172.26.0.10
+      - 172.26.0.11
+      - 172.26.0.12
+      - 172.26.0.13
+      - 172.26.0.14
+      - 172.26.0.15
+      - 172.26.0.16
+      - 172.26.0.17
+      - 172.26.0.18
+      - 172.26.0.19
+      - 172.26.0.20
+      entry_schema:
+        type: string
+    ps_flavor_name:
+      label: PS flavor name
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: ps_flavor_name
+      type: string
+      description: flavor name of PS instance
+      default: m3.xlarge
+    rx_net_ips:
+      label: Rx network ips
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - main
+            source_type: HEAT
+            param_name: rx_net_ips
+      type: list
+      description: Rx network ips
+      default:
+      - 107.239.34.3
+      - 107.239.34.4
+      entry_schema:
+        type: string
+  node_templates:
+    test_net2:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    test_net1:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        shared: true
+        network_name:
+          get_input: jsa_net_name
+    abstract_pd_server:
+      type: org.openecomp.resource.abstract.nodes.pd_server
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 1
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - get_input: oam_net_name
+        port_pd01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_serverServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    abstract_pd_server_1:
+      type: org.openecomp.resource.abstract.nodes.pd_server_1
+      directives:
+      - substitutable
+      properties:
+        compute_pd_server_availability_zone:
+        - get_input: availabilityzone_name
+        compute_pd_server_name:
+        - get_input:
+          - pd_server_names
+          - 0
+        vm_flavor_name:
+          get_input: pd_flavor_name
+        subinterface_nested_p1:
+        - pd01_port_0
+        port_pd01_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: pd_image_name
+        port_pd01_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_pd01_port_network:
+        - get_input: oam_net_name
+        subinterface_nested_net1:
+        - test_net1
+        port_pd01_port_network_role_tag: oam
+        compute_pd_server_user_data_format:
+        - RAW
+        service_template_filter:
+          substitute_service_template: Nested_pd_server_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+          capability: tosca.capabilities.network.Linkable
+          node: test_net1
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    main_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/main.yml
+        description: heat template that creates MOG stack
+      members:
+      - test_net2
+      - test_net1
+      - abstract_pd_server
+      - abstract_pd_server_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/Nested_pd_serverServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/Nested_pd_serverServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..3d9ebd7
--- /dev/null
@@ -0,0 +1,297 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_order:
+      type: integer
+      required: true
+    port_pd01_port_subnetpoolid:
+      type: string
+      required: true
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        order:
+          get_input: port_pd01_port_order
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      network.outgoing.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.packets.rate
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      network.incoming.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      attachment_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - attachment
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes.rate
+      network.incoming.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      network.outpoing.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outpoing.packets
+      forwarder_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - forwarder
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      feature_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - feature
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      dependency_pd_server:
+      - pd_server
+      - dependency
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/Nested_pd_server_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/Nested_pd_server_1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..36baabb
--- /dev/null
@@ -0,0 +1,344 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_pd_server_1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    compute_pd_server_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_pd_server_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    subinterface_nested_p1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vm_image_name:
+      type: string
+      required: true
+    port_pd01_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_pd01_port_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_order:
+      type: integer
+      required: true
+    port_pd01_port_subnetpoolid:
+      type: string
+      required: true
+    subinterface_nested_net1:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_pd01_port_network_role:
+      type: string
+      required: true
+    port_pd01_port_network_role_tag:
+      type: string
+      required: true
+    port_pd01_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    compute_pd_server_user_data_format:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+  node_templates:
+    pd_server_pd01_port_nested:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+      directives:
+      - substitutable
+      properties:
+        p1:
+          get_input:
+          - subinterface_nested_p1
+          - index_value
+        service_template_filter:
+          substitute_service_template: nestedServiceTemplate.yaml
+          count: 9
+          mandatory: true
+        net1:
+          get_input:
+          - subinterface_nested_net1
+          - index_value
+      requirements:
+      - binding_template_Vlan_vmi_1:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server_pd01_port
+          relationship: tosca.relationships.network.BindsTo
+    pd_server:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.pd_server
+      properties:
+        availability_zone:
+          get_input:
+          - compute_pd_server_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_pd_server_name
+          - index_value
+        user_data_format:
+          get_input:
+          - compute_pd_server_user_data_format
+          - index_value
+    pd_server_pd01_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        exCP_naming:
+          get_input: port_pd01_port_exCP_naming
+        vlan_requirements:
+          get_input: port_pd01_port_vlan_requirements
+        ip_requirements:
+          get_input: port_pd01_port_ip_requirements
+        network_role_tag:
+          get_input: port_pd01_port_network_role_tag
+        mac_requirements:
+          get_input: port_pd01_port_mac_requirements
+        order:
+          get_input: port_pd01_port_order
+        network_role:
+          get_input: port_pd01_port_network_role
+        subnetpoolid:
+          get_input: port_pd01_port_subnetpoolid
+        network:
+          get_input:
+          - port_pd01_port_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pd_server
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.pd_server_1
+    capabilities:
+      scalable_pd_server:
+      - pd_server
+      - scalable
+      disk.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.read.bytes.rate
+      memory.usage_pd_server:
+      - pd_server
+      - memory.usage
+      memory_pd_server:
+      - pd_server
+      - memory
+      disk.device.usage_pd_server:
+      - pd_server
+      - disk.device.usage
+      network.outgoing.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.packets.rate
+      os_pd_server:
+      - pd_server
+      - os
+      disk.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.write.bytes.rate
+      network.incoming.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes
+      cpu_pd_server:
+      - pd_server
+      - cpu
+      cpu_util_pd_server:
+      - pd_server
+      - cpu_util
+      disk.device.write.requests.rate_pd_server:
+      - pd_server
+      - disk.device.write.requests.rate
+      disk.read.bytes_pd_server:
+      - pd_server
+      - disk.read.bytes
+      disk.device.read.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.read.bytes.rate
+      network.outgoing.bytes_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes
+      disk.iops_pd_server:
+      - pd_server
+      - disk.iops
+      memory.resident_pd_server:
+      - pd_server
+      - memory.resident
+      cpu.delta_pd_server:
+      - pd_server
+      - cpu.delta
+      network.incoming.packets.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets.rate
+      vcpus_pd_server:
+      - pd_server
+      - vcpus
+      disk.device.write.bytes.rate_pd_server:
+      - pd_server
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_pd_server:
+      - pd_server
+      - disk.device.write.requests
+      endpoint_pd_server:
+      - pd_server
+      - endpoint
+      attachment_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - attachment
+      disk.capacity_pd_server:
+      - pd_server
+      - disk.capacity
+      feature_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature_template_Vlan_vmi_1
+      disk.device.allocation_pd_server:
+      - pd_server
+      - disk.device.allocation
+      disk.allocation_pd_server:
+      - pd_server
+      - disk.allocation
+      binding_pd_server:
+      - pd_server
+      - binding
+      disk.read.requests_pd_server:
+      - pd_server
+      - disk.read.requests
+      feature_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - feature
+      feature_pd_server:
+      - pd_server
+      - feature
+      disk.usage_pd_server:
+      - pd_server
+      - disk.usage
+      binding_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - binding
+      disk.write.bytes_pd_server:
+      - pd_server
+      - disk.write.bytes
+      network.incoming.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.bytes.rate
+      network.incoming.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.incoming.packets
+      disk.device.read.requests.rate_pd_server:
+      - pd_server
+      - disk.device.read.requests.rate
+      disk.root.size_pd_server:
+      - pd_server
+      - disk.root.size
+      disk.device.read.bytes_pd_server:
+      - pd_server
+      - disk.device.read.bytes
+      disk.device.write.bytes_pd_server:
+      - pd_server
+      - disk.device.write.bytes
+      disk.device.read.requests_pd_server:
+      - pd_server
+      - disk.device.read.requests
+      instance_pd_server:
+      - pd_server
+      - instance
+      host_pd_server:
+      - pd_server
+      - host
+      network.outpoing.packets_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outpoing.packets
+      forwarder_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - forwarder
+      disk.write.requests.rate_pd_server:
+      - pd_server
+      - disk.write.requests.rate
+      disk.ephemeral.size_pd_server:
+      - pd_server
+      - disk.ephemeral.size
+      disk.write.requests_pd_server:
+      - pd_server
+      - disk.write.requests
+      feature_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - feature
+      disk.device.latency_pd_server:
+      - pd_server
+      - disk.device.latency
+      disk.latency_pd_server:
+      - pd_server
+      - disk.latency
+      disk.device.capacity_pd_server:
+      - pd_server
+      - disk.device.capacity
+      network.outgoing.bytes.rate_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - network.outgoing.bytes.rate
+      disk.device.iops_pd_server:
+      - pd_server
+      - disk.device.iops
+    requirements:
+      local_storage_pd_server:
+      - pd_server
+      - local_storage
+      link_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - link_template_Vlan_vmi_1
+      link_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - link
+      dependency_pd_server_pd01_port:
+      - pd_server_pd01_port
+      - dependency
+      dependency_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency
+      dependency_pd_server:
+      - pd_server
+      - dependency
+      dependency_template_Vlan_vmi_1_pd_server_pd01_port_nested:
+      - pd_server_pd01_port_nested
+      - dependency_template_Vlan_vmi_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/nestedServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/pattern1b/sameComputeSamePortDiffSubInterfaceFile/out/nestedServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..bbc48d7
--- /dev/null
@@ -0,0 +1,119 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nested
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    vlan_ids:
+      hidden: false
+      immutable: false
+      type: string
+    p1:
+      hidden: false
+      immutable: false
+      type: string
+    p2:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ipv6_address:
+      hidden: false
+      immutable: false
+      type: string
+    virtual_ip_address:
+      hidden: false
+      immutable: false
+      type: string
+    net2:
+      hidden: false
+      immutable: false
+      type: string
+    lb_st_vlan_type_oam:
+      hidden: false
+      immutable: false
+      type: string
+      description: dummy
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+    net1:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+    subinterface_instance_index:
+      hidden: false
+      immutable: false
+      type: float
+  node_templates:
+    template_Vlan_vmi_1:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: p1
+        name:
+          str_replace:
+            template: $NAME$VLAN
+            params:
+              $NAME:
+                get_input: subinterface_name_prefix
+              $VLAN:
+                get_input:
+                - vlan_ids
+                - get_input: subinterface_instance_index
+        virtual_network_refs:
+        - get_input: net1
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input: lb_st_vlan_type_oam
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ip_address
+              ip_prefix_len: 32
+            mac:
+              get_input: mac_address
+          - address_mode: active-standby
+            ip:
+              ip_prefix:
+                get_input: virtual_ipv6_address
+              ip_prefix_len: 128
+            mac:
+              get_input: mac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    nested_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nested.yml
+        description: cmaui server template for vMMSC
+      members:
+      - template_Vlan_vmi_1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.nested
+    capabilities:
+      feature_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - feature
+    requirements:
+      link_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - link
+      dependency_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - dependency
+      binding_template_Vlan_vmi_1:
+      - template_Vlan_vmi_1
+      - binding